gpt4 book ai didi

java - 如何使用 BufferedWriter 读取特定行

转载 作者:行者123 更新时间:2023-12-02 06:49:56 25 4
gpt4 key购买 nike

我正在为我的游戏开发一个简单的保存系统,其中涉及三种方法,初始化加载和保存。

这是我第一次尝试读取和写入文件,因此我不确定我是否正确执行此操作,因此我请求帮助。

我想这样做:

当游戏开始时,init 被调用。如果保存的文件不存在,则创建该文件,如果存在,则调用 load。

稍后在游戏中,将调用 save,并且变量将被逐行写入文件(我在本例中使用了两个。)

但是,我被困在加载函数上。我不知道接下来该做什么。这就是为什么我要问,是否可以从文件中选择特定行,并将变量更改为该特定行。

这是我的代码,就像我说的,我不知道我是否正确执行此操作,因此感谢帮助。

private File saves = new File("saves.txt");

private void init(){
PrintWriter pw = null;

if(!saves.exists()){
try {
pw = new PrintWriter(new File("saves.txt"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}else{
try {
load();
} catch (IOException e) {
e.printStackTrace();
}
}
}

public void save(){
PrintWriter pw = null;

try {
pw = new PrintWriter(new FileOutputStream(new File("saves.txt"), true));
} catch (FileNotFoundException e) {
e.printStackTrace();
}

pw.println(player.coinBank);
pw.println(player.ammo);

pw.close();
}

public void load() throws IOException{
BufferedReader br = new BufferedReader(new FileReader(saves));
String line;
while ((line = br.readLine()) != null) {

}
}

我正在考虑也许有一个数组,将文本文件中的字符串解析为整数,将其放入数组中,然后让变量等于数组中的值。

最佳答案

看起来你的文件是一个key=value结构,我建议你在java中使用Properties对象。这是一个很好的 example

您的文件将如下所示:

player.coinBank=123
player.ammo=456

保存:

Properties prop = new Properties();
prop.setProperty("player.coinBank", player.getCoinBank());
prop.setProperty("player.ammo", player.getAmmo());
//save properties to project root folder
prop.store(new FileOutputStream("player.properties"), null);

然后你将像这样加载它:

Properties prop = new Properties();
prop.load(new FileInputStream("player.properties"));

//get the property value and print it out
System.out.println(prop.getProperty("player.coinBank"));
System.out.println(prop.getProperty("player.ammo"));

关于java - 如何使用 BufferedWriter 读取特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18173367/

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