簡體   English   中英

stream to strings:將多個文件合並為一個字符串

[英]streams to strings: merging multiple files into a single string

我有兩個文本文件,我想作為流抓取並轉換為字符串。 最終,我希望合並兩個單獨的文件。

到目前為止,我已經有了

     //get the input stream of the files. 

    InputStream is =
            cts.getClass().getResourceAsStream("/files/myfile.txt");


     // convert the stream to string

    System.out.println(cts.convertStreamToString(is));

getResourceAsStream不會將多個字符串作為參數。 那么我需要做什么? 單獨轉換它們並合並在一起?

任何人都可以告訴我一個簡單的方法嗎?

聽起來你想要連接流。 您可以使用SequenceInputStream從多個流創建單個流。 然后從該單個流中讀取數據並根據需要使用它。

這是一個例子:

String encoding = "UTF-8"; /* You need to know the right character encoding. */
InputStream s1 = ..., s2 = ..., s3 = ...;
Enumeration<InputStream> streams = 
  Collections.enumeration(Arrays.asList(s1, s2, s3));
Reader r = new InputStreamReader(new SequenceInputStream(streams), encoding);
char[] buf = new char[2048];
StringBuilder str = new StringBuilder();
while (true) {
  int n = r.read(buf);
  if (n < 0)
    break;
  str.append(buf, 0, n);
}
r.close();
String contents = str.toString();

我可以想到幾個方法創建一個StringBuilder,然后將每個流轉換為一個字符串並附加到stringbuilder。

或者,創建一個可寫的內存流並將每個輸入流流式傳輸到該內存流中,然后將其轉換為字符串。

創建一個循環,為每個文件將文本加載到StringBuilder 然后,在附加每個文件的數據后,在構建器上調用toString()。

暫無
暫無

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

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