如何根据某些条件读取现有文本文件并修改其某些值,例如,如果我得到一些文本
Apple 1 3 5
现在,每当我得到一个整数值时,我必须将其计数增加1并再次保存回同一文件。
例如,如果我阅读上面的一些内容,我应该可以保存
Apple 2 4 6
再次回到同一个文件
我的代码看起来像
尝试{ FileWriter fstream = new FileWriter(“c:\ Apple.txt”,true);
FileReader inputFileReader = new FileReader("c:\\Apple.txt");
BufferedReader inputStream = new BufferedReader(inputFileReader);
PrintWriter outputStream = new PrintWriter(fstream);
while((inline=inputStream.readLine())!=null)
{
values=inline.split("-");
Integer l = Integer.parseInt(values[2])+1;
outputStream.print((inline.replaceAll(values[2],l.toString())));
}
outputStream.close();
}
所以,我得到了像
这样的输出Apple 1 3 5 Apple 1 4 5
但我要求的输出是
Apple 1 4 5
先谢谢
答案 0 :(得分:1)
将代码拆分为单独的方法调用:
File f = getFile();
String text = getFileContents(f);
if(matchesRequirements(text)){
String newText = performReplacements(text);
writeFile(newText, f);
}
现在您可以实现这些方法:
private static void writeFile(String newText, File f){
// TODO implement this method
}
private static String performReplacements(String text){
// TODO implement this method
return null;
}
private static boolean matchesRequirements(String text){
// TODO implement this method
return false;
}
private static String getFileContents(File f){
// TODO implement this method
return null;
}
private static File getFile(){
// TODO implement this method
return null;
}
了解您有多远,并在遇到问题时询问具体问题。
答案 1 :(得分:0)
你不能在同一个文件上以交互方式进行(或者至少也许你可以,但它会非常棘手)..你可以
答案 2 :(得分:0)
我使用了RandomAccessFile,它运行正常。