【发布时间】:2023-04-08 21:33:01
【问题描述】:
我将文本文件内容转换为字节数组。我想将其重写为另一个文本文件,但 BufferedWriter 将其全部写入一行,我该如何解决?我希望它和原来的完全一样
这就是我的做法:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintStream;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
public class StringToBinary_Converter {
public static ArrayList<byte[]> al = new ArrayList<byte[]>();
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new FileReader(new File("A.txt")));
String input;
while ((input = br.readLine()) != null) {
al.add(input.getBytes());
}
PrintStream ps = new PrintStream("B.txt");
System.setOut(ps);
for (int i = 0; i < al.size(); i++) {
for (int j = 0; j < al.get(i).length; j++) {
System.out.println(al.get(i)[j]);
}
}
for (int i = 0; i < al.size(); i++) {
for (int j = 0; j < al.get(i).length; j++) {
System.out.println(Integer.toBinaryString(Integer.parseInt(String.valueOf(al.get(i)[j]))));
}
}
for (int i = 0; i < al.size(); i++) {
for (int j = 0; j < al.get(i).length; j++) {
System.out.println(Integer.toHexString(Integer.parseInt(String.valueOf(al.get(i)[j]))));
}
}
try (BufferedWriter bw = new BufferedWriter(new FileWriter("C.txt"));) {
for (int i = 0; i < al.size(); i++) {
bw.write(new String(al.get(i), StandardCharsets.UTF_8));
}
} catch (IOException e) {
e.getMessage();
}
} catch (IOException e) {
e.getMessage();
}
}
}
我正在使用 Eclipse,提前致谢。
*编辑 我知道将文件内容写入另一个文件不需要转换。
【问题讨论】:
-
用于阅读的
BufferedReader不包括换行符 a.i.r.尝试将其添加回刚刚读取的行。也就是说,从一个文本文件复制到另一个文件不需要转换,因此只需将读取的行写回即可。 -
@Joost Papendorp 我编辑了我的问题很抱歉它不完整。
标签: java eclipse byte filewriter bufferedwriter