试图读取文件

时间:2011-12-20 12:09:51

标签: java file bufferedreader

我试图用字符串写一个文件然后读它。但是当我读到它时看起来很奇怪的是正方形和东西..我无法复制粘贴!

以下是代码:

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.");
    }

}
}

1 个答案:

答案 0 :(得分:5)

您正在创建ObjectOutputStream - 这基本上是一个充满序列化对象的二进制文件。它绝不是文本文件,不应该被视为文本文件。

如果你想要一个文本文件,你想要一些Writer的描述 - 例如一个OutputStreamWriter包裹FileOutputStream。如果您想一次写一行,您可能希望将OutputStreamWriter包裹在BufferedWriter中。

了解“包含序列化字符串的二进制文件”和“文本文件”之间的区别非常重要。