【发布时间】:2014-12-06 22:49:34
【问题描述】:
我有一个可以工作的应用程序,它需要一个文本文件,分阶段修改它,直到它整洁可用。 每个阶段都会接受一个文件并对其进行修改,然后吐出一个文件供下一个阶段缓冲。
我试图让它更干净,所以我想停止拉入文件,除了第一个文件,并将输出作为字符串传递给应用程序。 使用此代码,我将如何做到这一点?
这是第二阶段。
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(new File("C:/Stage_Two.txt")));
StringBuffer stringBuffer = new StringBuffer();
String line;
while ((line = bufferedReader.readLine()) != null) {
Pattern pattern = Pattern.compile("ALL|MESSAGE|Time|PAPER_MAIN|GSP");
if (pattern.matcher(line).find()) {
continue;
}
stringBuffer.append(line);
stringBuffer.append("\n");
}
BufferedWriter bwr = new BufferedWriter(new FileWriter(new File("C:/Stage_Three.txt")));
bwr.write(stringBuffer.toString());
bwr.flush();
bwr.close();
// to see in console
//System.out.println(stringBuffer);
} catch (IOException e) {
}
我已经研究过 InputStream、InputStreamReader 和 Reader……但如果是其中之一,我似乎无法取得进展。
【问题讨论】:
-
您只是在寻找代码审查吗?
-
不,从拉入文件到使用字符串进行更改的方向。
-
阅读一些关于装饰器模式的内容。考虑让与这些“修饰符类”无关的不同组件负责读取和/或写入文件。
-
如果你想要一个肮脏的黑客然后使用
StringReader和StringWriter。否则,只需处理使用来自Flies.lines()的Stream<String>并创建一个管道。
标签: java inputstream bufferedreader