[英]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()
两次,并获取第二个对象
使用ObjectOutputStream
和ObjectInputStream
,所有内容都以二进制格式存储在文件中,因此查看文件不会给您太多信息。
您放入文件中以及从输入流中获取的内容都是单个对象。 要同时获得两个String
您需要两次调用readObject()
,对于您最初拥有的每个writeObject()
都要调用一次。
如果要使用文本文件,可以查看BufferedReader
和BufferedWriter
。 如果您想一次读取整个文本文件,请看什么是将文件读取为String的最简单方法? 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.