簡體   English   中英

如何在java中的文件中循環寫入或附加字符串?

[英]How to write or append string in loop in a file in java?

我在處理非常大的數據集時遇到內存問題,並且使用 char[] 和 Strings 出現內存泄漏,不知道為什么! 所以我想在文件中寫入一些處理過的數據而不是存儲在內存中。 因此,我想使用循環從文件中的 arrayList 寫入文本。 首先,程序將檢查當前工作目錄中是否已存在特定文件,如果不存在,則創建具有特定名稱的文件,並開始使用循環從 arrayList 逐行寫入文本; 如果文件已經存在,則打開文件並在文件的最后一行(在新行中)后附加第一個數組值,並開始逐行在循環中寫入其他數組值。

任何機構都可以建議我如何在 Java 中做到這一點? 我不太擅長 Java,所以如果可能,請提供一些示例代碼。

謝謝!

試試這個

ArrayList<String> StringarrayList = new ArrayList<String>(); 
    FileWriter writer = new FileWriter("output.txt", true); 
    for(String str: StringarrayList ) {
      writer.write(str + "\n");
    }
    writer.close();

我不確定您不確定流程的哪些部分,所以我將從頭開始。

Serializable接口允許您將對象寫入文件。 任何實現Serializable對象都可以傳遞給ObjectOutputStream並寫入文件。

ObjectOutputStream接受FileOutputStream作為參數,它可以附加到文件。

ObjectOutputstream outputStream = new ObjectOutputStream(new FileOutputStream("filename", true));
outputStream.writeObject(anObject);

有一些異常處理需要處理,但這些是基礎知識。 請注意, anObject應該實現Serializable

讀取文件非常相似,只是它使用了我提到的類的 Input 版本。

// 在主

List<String> SarrayList = new ArrayList<String>(); 
.....

用內容填充它

enter content to SarrayList here .....

寫入文件

appendToFile (SarrayList);

.....

public void appendToFile (List<String> SarrayList) {

      BufferedWriter bw = null;
      boolean myappend = true;
      try {
         bw = new BufferedWriter(new FileWriter("myContent.txt", myappend));
         for(String line: SarrayList ) {
         bw.write(line);
         bw.newLine();
         }
         bw.flush();
      } catch (IOException ioe) {
        ioe.printStackTrace();
      } finally { 
        if (bw != null) try {
        bw.close();
        } catch (IOException ioe2) {
        // ignore it  or write notice
        }
      }

   } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM