gpt4 book ai didi

Java BufferedReader 只读取两行

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

所以我有一个 Void 函数,它应该从 .txt 文件中读取整数,它在大多数情况下都有效,除了它只读取前两行我已尽我所能,但似乎没有任何效果

public static void load(Player p) {
String line = "";
String token = "";
String token2 = "";
String[] token3 = new String[3];
boolean EndOfFile = false;
BufferedReader characterfile = null;
boolean File1 = false;

try {
characterfile = new BufferedReader(new FileReader("./cache/Player.txt"));
File1 = true;
} catch (FileNotFoundException fileex1) {
}

if (File1) {
// new File ("./characters/"+playerName+".txt");
} else {
System.out.println("character file not found.");
}
try {
line = characterfile.readLine();
} catch (IOException ioexception) {
System.out.println(": error loading file.");
}
while (EndOfFile == false && line != null) {
line = line.trim();
int spot = line.indexOf("=");
if (spot > -1) {
token = line.substring(0, spot);
token = token.trim();
token2 = line.substring(spot + 1);
token2 = token2.trim();
token3 = token2.split("\t");
if (token.equals("Difficulty")) {
Player.setDifficulty(Integer.parseInt(token2));
}
else if (token.equals("Player Health")) {
//System.out.println(token2);
System.out.println("debug");
Player.setHealth(Integer.parseInt(token2));
}
else if (token.equals("Player Strength")) {
//System.out.println(token2);
Player.setStrength(Integer.parseInt(token2));
}
try {
line = characterfile.readLine();
} catch (IOException ioexception1) {
System.out.println("sent");
EndOfFile = true;
}
}
try {
characterfile.close();
} catch (IOException ioexception) {
}
}
}

这是我的保存方法,其功能符合预期。

public void save(Player p) {
BufferedWriter characterfile = null;
try {
characterfile = new BufferedWriter(new FileWriter("./cache/Player.txt"));
characterfile.write("Player Strength = ");
characterfile.write(Integer.toString(Player.getStrength()));
characterfile.newLine();
characterfile.write("Player Health = ");
characterfile.write(Integer.toString(Player.getHealth()));
characterfile.newLine();
characterfile.write("Difficulty = ");
characterfile.write(Integer.toString(Player.getDifficulty()));
characterfile.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

这就是我的 Player.txt 的样子

Player Strength = 0
Player Health = 0
Difficulty = 0

正如我所说,将读取玩家强度和玩家生命值,但 token 甚至不会进入难度或完全跳过它,我完全没有想法。

最佳答案

调用br.readLine()一次只会读取一行。您可以循环直到br.readLine()不返回null.

String line=null;
while((line=br.readLine())!=null){
//Do your stuff
}

关于Java BufferedReader 只读取两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24278311/

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