因此,我正在创建一个程序,该程序在被调用时将具有输入,进入文件并更改分配给所调用字符串的数字。例如:
文件看起来像:
stone 0 wood 5 water 2 metal 5
并且如果调用了“ wood”,它将进入文件,找到wood,然后向wood右边的值发送加一,这只会将该值更改为6,然后保存文件。
我已经在互联网上四处张望,但找不到真正适合我的特定问题的东西。它可以将一个int更改为一个或另一个,或将所有int更改为某个内容。
public class Main {
public static void main(String[] args) {
FileWriter fw;
BufferedReader reader;
StringBuffer ib;
String allBlockAndNull = "stone 0 wood 5 water 2 metal 5";
String strDir = "C:\\Users\\amdro\\Desktop\\test.txt";
File fileDir = new File(strDir);
//creates file it doesn't exist
try {
fw = new FileWriter(fileDir);
fw.write(allBlockAndNull);
fw.close();
} catch (IOException e) {
e.printStackTrace();
}finally {}
}
}
如果您可以从上面进行扩展,那就太好了!
您不能将数字添加到文件的值中,因为所有值都是字符串,但是您可以做的是替换字符串值
public static void main(String[] args) throws IOException {
File file = new File("file.txt");//The file containing stone 0 wood 5 water 2 metal 5
BufferedReader reader = new BufferedReader(new FileReader(file));
String words = "", list = "";
while ((words = reader.readLine()) != null) {
list += words;
}
reader.close();
Scanner s = new Scanner(file);
if(list.contains("wood")) {
String replacedtext = list.replaceAll("wood 5", "wood 6");
FileWriter writer = new FileWriter("file.txt");
writer.write(replacedtext);
writer.close();
}
}
}
这是解决问题的非常简单和基本的方法。
创建扫描仪以读取您的文本文件和字符串变量
Scanner s = new Scanner(new File("fileName.txt"));
String line = "";
虽然文本文件中仍然有字符,但要得到单词和数字
while(sc.hasNext()){
String word = s.next();
int number = s.nextInt();
使用switch
和case
检查单词。例如,如果单词=“ wood”,则将“ wood”和新数字追加到newNumber
至line
case "wood":
line += word + " " + newNumber + " ";
break;
默认将在单词和旧数字后附加number
default:
line += word + " " + number + " ";
然后,只需创建一个FileWriter
和一个BufferedWriter
以将line
写入文本文件。