[英]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.