簡體   English   中英

如何在不使用文件的情況下寫入虛擬 DataOutputStream?

[英]How to write to a dummy DataOutputStream without using files?

我正在使用一個特定的庫(不幸的是無法避免),它使用接收 DataOutputStream 作為輸入的實用程序 function 將 class 中的一些信息寫入文件。
我想將結果文件的內容作為字符串獲取,而無需實際創建文件並將其寫入其中,因為寫入可能非常“繁重”(1000 多行)。
這是否可以通過使用虛擬 DataOutputStream 或其他方法來實現,而無需創建臨時文件並從那里讀取結果?

PS:實際寫入 DataOutputStream 的最終方法會不時更改,所以我不希望每次都復制粘貼它並重做它。

As java.io.DataOutputStream wraps around just any other java.io.OutputStream (you have to specify an instance in the constructor) I would recommend that you use a java.io.ByteArrayOutputStream to collect the data in-memory and get the String稍后使用.toString()方法。

例子:

ByteArrayOutputStream inMemoryOutput = new ByteArrayOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(inMemoryOutput);

// use dataOutputStream here as intended

// and then get the String data
System.out.println(inMemoryOutput.toString());

如果收集的字節的編碼與系統默認編碼不匹配,您可能必須指定一個 Charset 作為toString的參數。

暫無
暫無

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

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