[英]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.