我需要将播放器数据写到一个文件中,并读取它,当它保存时,编辑数据。我不太擅长文件I/O,但这是我所拥有的。
public class DirectoryMaker {
static BufferedWriter bw;
static int lvl = 1;
static int hp = 100;
public static void main(String[] args) throws IOException {
FileWriter fw;
File dir = new File("c:\\MyFile\\b\\stuff");
if (!dir.exists()) {
if (dir.mkdirs()) {
System.out.println("Directory is created!");
} else {
System.out.println("Failed to create directory!");
}
}
String fileName="hi";
File tagFile=new File(dir,fileName+".txt");
if(!tagFile.exists()){
try {
fw = new FileWriter(tagFile.getAbsoluteFile());
bw = new BufferedWriter(fw);
bw.write("LEVEL: " + lvl + "\n");
tagFile.createNewFile();
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Scanner s = new Scanner(tagFile);
while(s.hasNextLine()) {
System.out.println(s.nextLine());
}
System.exit(1);
}
}使用此代码,当文件中的lvl int发生更改时,我如何更新它。在更新了这个int之后,我需要添加其他内容并读取它们。
发布于 2014-09-07 03:30:14
如果您将数据以文本形式存储在文件中,我强烈建议您使用YAML,它可以很好地格式化您的数据,并使其易于检索。另一种选择是JSON文件,但我对JSON不是很熟悉。下面是一个常用的YAML库:https://code.google.com/p/snakeyaml/,使用起来非常简单:
File f = ...;
String s = "Me";
Yaml y = new Yaml();
BufferedWriter writer = new BufferedWriter(new FileWriter(f));
y.dump(Map.Entry<"Name",s>, writer);
writer.Close();
BufferedReader in = new BufferedReader(new FileReader(f));
Map map = (Map) yaml.load(f); //Loads whole document
String name = map.get("Name"); //Find the String with the key "Name"
in.Close();可能需要做一些改进,但这主要是为了让你对功能有一个概念。
https://stackoverflow.com/questions/25703570
复制相似问题