[英]How to modify text of a text-file which is read using FileInputStream
我必須使用一種簽名如下的方法
aMethod(FileInputStream);
我這樣叫那個方法
FileInputStream inputStream = new FileInputStream(someTextFile);
aMethod(inputStream);
我想刪除/編輯從someTextFile中讀取的一些char,然后將其傳遞到aMethod(inputStream)
;
我無法更改aMethod的簽名或使其重載。 而且,它只需要一個InputStream。 如果方法采用字符串作為參數,那么我不會問這個問題。
我是InputStream菜鳥。 請指教。
您可以將字符串轉換為輸入流
String str = "Converted stuff from reading the other inputfile and modifying it";
InputStream is = new ByteArrayInputStream(str.getBytes());
這可能會有所幫助。 它將獲取您的.txt文件。 然后它將加載並逐行通過。 您必須填寫評論區域才能執行所需的操作。
public void parseFile() {
String inputLine;
String filename = "YOURFILE.txt";
Thread thisThread = Thread.currentThread();
ClassLoader loader = thisThread.getContextClassLoader();
InputStream is = loader.getResourceAsStream(filename);
try {
FileWriter fstream = new FileWriter("path/to/NEWFILE.txt");
BufferedWriter out = new BufferedWriter(fstream);
BufferedReader reader = new BufferedReader(
new InputStreamReader(is));
while((inputLine = reader.readLine()) != null) {
String[] str = inputLine.split("\t");
if(/* IF WHAT YOU WANT IS IN THE FILE ADD IT */) {
// DO SOMETHING OR ADD WHAT YOU WANT
out.append(str);
out.newLine();
}
}
reader.close();
out.close();
} catch (Exception e) {
e.getMessage();
}
}
您是否看過另一個類FilterInputStream
,它也擴展了InputStream
以滿足您的需求? 從課程文檔
FilterInputStream包含其他一些輸入流,它用作其基本數據源,可能會沿途轉換數據或提供其他功能。
也看一下這個問題,它似乎也與您的問題相似。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.