我试图用字符串写一个文件然后读它。但是当我读到它时看起来很奇怪的是正方形和东西..我无法复制粘贴!
以下是代码:
import java.io.*;
public class ObjectOutputStreamDemo {
public static void main(String[] args) throws ClassNotFoundException {
try {
//Now Im writing
ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream("fruit.dat"));
String ord[] = { "Banana", "Mango", "Apple", "Passionfruit","Orange" };
for (int i = 0; i < 5; i++) {
output.writeObject(ord[i]);
}
output.close();
//Now Im trying to read.
BufferedReader in = new BufferedReader(new FileReader("fruit.dat"));
String str;
while ((str = in.readLine()) != null) {
System.out.println(str);
}
} catch (IOException e) {
System.out.println("Problem with file.");
}
}
}
答案 0 :(得分:5)
您正在创建ObjectOutputStream
- 这基本上是一个充满序列化对象的二进制文件。它绝不是文本文件,不应该被视为文本文件。
如果你想要一个文本文件,你想要一些Writer
的描述 - 例如一个OutputStreamWriter
包裹FileOutputStream
。如果您想一次写一行,您可能希望将OutputStreamWriter
包裹在BufferedWriter
中。
了解“包含序列化字符串的二进制文件”和“文本文件”之间的区别非常重要。