繁体   English   中英

从字节流中读取多行

[英]Reading multiple lines from a byte stream

我注意到,每当您使用FileOutputStream且append为true时,附加的对象就会放在另一行。

我的问题是如何使用ObjectInputStream读取多行数据。

例如:

public class StringBytes {

    public static void main(String[] args) throws Exception {
        String S1 = "Hi";
        String S2 = "\n"+"Bye";
        String file = "C:\\HiBye.out";


        FileOutputStream fileOutputStream = new FileOutputStream(file);
        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
        objectOutputStream.writeObject(S1);

        fileOutputStream = new FileOutputStream(file,true);
        objectOutputStream = new ObjectOutputStream(fileOutputStream);
        objectOutputStream.writeObject(S2);



        FileInputStream fileInputStream = new FileInputStream(file);
        ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);

        String SS = (String) objectInputStream.readObject();
        System.out.println(SS);

    }
}

上面的输出为Hi因为Bye在不同的行上,因此不会读取。 我仍然是一个初学者,因此所有人的帮助表示赞赏

您在文件中写入了两个对象(String的实例):s1和s2。 您只能读取一个对象,第一个。

如果希望将其视为单个String,则需要s1为“ Hey” + \\ n +“ Bye”。 或者,您可以调用readObject()两次,并获取第二个对象

使用ObjectOutputStreamObjectInputStream ,所有内容都以二进制格式存储在文件中,因此查看文件不会给您太多信息。

您放入文件中以及从输入流中获取的内容都是单个对象。 要同时获得两个String您需要两次调用readObject() ,对于您最初拥有的每个writeObject()都要调用一次。

如果要使用文本文件,可以查看BufferedReaderBufferedWriter 如果您想一次读取整个文本文件,请看什么是将文件读取为String的最简单方法?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM