gpt4 book ai didi

java - 如何根据java中文本文件中的子字符串更改值

转载 作者:行者123 更新时间:2023-12-01 18:14:21 25 4
gpt4 key购买 nike

我想每次都更改文本文件的子字符串值。下面的 Hello.txt 文件包含以下数据:-

ID 422686 658658 987451

当我硬编码时,该值将被新数字替换,例如,

modifyFile("Hello.txt", "422686", RandomStringUtils.randomNumeric(6));

这个位置的值正在发生变化,并且有新的随机数字。下面的文本文件数据是固定的,因此我不需要每次都对数字进行硬编码,因此希望从子环概念中更改值 ,我尝试了这个,但是在传递更改值时,出现空指针异常

changevalue= oldContent.substring(7, 12);

以下是我的完整代码,请检查并更新

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import org.apache.commons.lang3.RandomStringUtils;

public class ModificationTextFile
{
static String changevalue;
static void modifyFile(String filePath, String oldString, String newString)
{
File fileToBeModified = new File(filePath);

String oldContent = "";

BufferedReader reader = null;

FileWriter writer = null;

try
{
reader = new BufferedReader(new FileReader(fileToBeModified));

//Reading all the lines of input text file into oldContent

String line = reader.readLine();

while (line != null)
{
oldContent = oldContent + line + System.lineSeparator();
changevalue= oldContent.substring(7, 12);
line = reader.readLine();
System.out.println("oldContent"+oldContent);
System.out.println("key"+changevalue);
System.out.println("line"+line);
}

//Replacing oldString with newString in the oldContent

String newContent = oldContent.replaceAll(oldString, newString);

//Rewriting the input text file with newContent

writer = new FileWriter(fileToBeModified);

writer.write(newContent);
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
//Closing the resources

reader.close();

writer.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}

public static void main(String[] args)
{
modifyFile("Hello.txt", "422686", RandomStringUtils.randomNumeric(6));
//modifyFile("coln.txt", changevalue, RandomStringUtils.randomNumeric(6));//java.lang.NullPointerException

System.out.println("done");
}
}

最佳答案

您需要阅读 substring方法。

第一个参数是beginIndex,在您的例子中是3。另外,第二个参数是 endIndex,它是指定字符串中最后一个字符之后的索引,在您的情况下为 9

所以,你应该这样写: changevalue= oldContent.substring(3, 9);

希望能帮助您解决问题。

关于java - 如何根据java中文本文件中的子字符串更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60403100/

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