gpt4 book ai didi

java - 使用 arraylist、Java 在文件中搜索和替换

转载 作者:行者123 更新时间:2023-11-30 04:56:05 24 4
gpt4 key购买 nike

我编写了以下部分代码,但无法使用搜索和替换绑定(bind)数组列表所以我的 csv 文件如下所示1/1/1;7/6/11/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());
}
}
}

最佳答案

当您声明时,您将打开文件进行阅读:

BufferedReader br = new BufferedReader(new InputStreamReader(in));

如果您知道整个文件适合内存,我建议执行以下操作:

  • 打开文件并将其在内存中的内容读取到一个巨大的字符串中,然后关闭文件。
  • 一次性将您的替换应用到巨大的字符串上。
  • 打开文件并写入(例如使用 BufferedWriter )巨大字符串的内容,然后关闭文件。

顺便说一句,您发布的代码将无法编译。您收到的答复的质量与所提出问题的质量相关。始终包含 SCCE回答您的问题,以增加获得问题准确答案的机会。

关于java - 使用 arraylist、Java 在文件中搜索和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8508979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com