我编写了以下部分代码,但我无法将arraylist与搜索和替换绑定 所以我的csv文件如下所示 1/1/1; 7/6/1 1/1/2; 7/7/1
我想在文件1.cfg中搜索1/1/1并将其更改为7/6/1并将1/1/2更改为7/7/1,然后再进行此操作。
提前谢谢大家
现在只在新文件中打印旧文件的最后一行
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class ChangeConfiguration {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args)
{
try{
// Open the file that is the first
// command line parameter
FileInputStream degistirilecek = new FileInputStream("c:/Config_Changer.csv");
FileInputStream config = new FileInputStream("c:/1.cfg");
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(config);
DataInputStream degistir = new DataInputStream(degistirilecek);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
BufferedReader brdegis = new BufferedReader(new InputStreamReader(degistir));
List<Object> arrayLines = new ArrayList<Object>();
Object contents;
while ((contents = brdegis.readLine()) != null)
{
arrayLines.add(contents);
}
System.out.println(arrayLines + "\n");
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
//Couldn't modify this part error is here :(
BufferedWriter out = new BufferedWriter(new FileWriter("c:/1_new.cfg"));
out.write(strLine);
out.close();
}
in.close();
degistir.close();
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
}
答案 0 :(得分:2)
您在声明时打开文件进行阅读:
BufferedReader br = new BufferedReader(new InputStreamReader(in));
如果您知道整个文件适合内存,我建议您执行以下操作:
作为旁注,您发布的代码将无法编译。您收到的回复质量与所提问题的质量相关。始终在问题中添加SCCE,以增加获得问题准确答案的机会。
答案 1 :(得分:0)
你能详细说明该计划的目的吗?
如果是文件中的简单内容替换。
然后只需读取一行并将其存储在一个字符串中。然后使用string replace方法替换字符串中的文本。
例如:
newStrog = oldString.replace(oldVlue,NEWVALUE);