gpt4 book ai didi

java - 在Java中逐字符复制文件

转载 作者:行者123 更新时间:2023-11-29 04:47:21 25 4
gpt4 key购买 nike

我正在做一个练习,我必须在 Java 中逐个字符地复制文件。我正在使用以下文件:

Hamlet.txt
To be, or not to be: that is the question.
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles,
And by opposing end them ?

我创建了第二个文件,名为 copy.txt,它将包含 Hamlet.txt 的逐字符副本问题是在我运行我的代码后,copy.txt 保持为空。

import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.PrintWriter;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;

public class Combinations {
public void run() {
try {
BufferedReader rd = new BufferedReader(new FileReader("Hamlet.txt"));
PrintWriter wr = new PrintWriter(new BufferedWriter(new FileWriter("copy.txt")));
copyFileCharByChar(rd, wr);
}catch(IOException ex) {
throw new RuntimeException(ex.toString());
}
}

private void copyFileCharByChar(BufferedReader rd, PrintWriter wr) {
try {
while(true) {
int ch = rd.read();
if(ch == - 1) break;
wr.print(ch);
}
} catch(IOException ex) {
throw new RuntimeException(ex.toString());
}
}

public static void main(String[] args) {
new Combinations().run();
}
}

所以我写了一个方法 copyFileCharByChar 接受一个 BufferedReader 对象 rd 和一个 FileWriter 对象 rd 读取每个单独的字符,wr 写入相应的字符。我在这里做错了什么?

最佳答案

在这种情况下你需要转换打印:

wr.print((char)ch);

或者使用write方法:

wr.write(ch);

您还需要关闭您的 PrintWriter:

wr.close();

关于java - 在Java中逐字符复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36648978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com