簡體   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