我是Java新手。我很好奇,哪种格式最适合用文本文件写。
例如:
假设我有一个data.txt文件,我可以保存变量值。
food : 100,
play : 20,
money : 50,
sleep : 20,
所以,问题是:我如何在格式良好的情况下使用此文本?
我在Google上搜索,找到了解决方案xml,json,Gson。问题是我不知道在codeFile中实现它。 我想使用JSON(文本变成这样或不)
{"Values": {
"food": 100,
"play": 20,
"moeny": 300,
}
}
但问题是:
1。)它的外部库 - 对我来说不容易实现。
2。)我的代码是可移植的 - 如果我在另一台PC上运行我的代码,那么还会为java安装json lib吗?
还有一个问题:我可以使用java中的其他形式吗?
答案 0 :(得分:0)
格式化的是什么意思?您需要将这些数据发送到Web服务吗?一个数据库?
编辑:
使用HashMap的简单示例(读/写):
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.regex.Pattern;
public class MapScanner {
public static void main(String[] args) throws IOException {
//Reading entries
Scanner scanner = new Scanner(new File("data"));
scanner.useDelimiter(Pattern.compile(",(\n)?"));
final Map<String, Integer> entries = new HashMap<>();
while(scanner.hasNext()){
final String entry = scanner.next();
final String[] entrySplited = entry.split(":");
entries.put(entrySplited[0].trim(), new Integer(entrySplited[1].trim()));
}
for(String key : entries.keySet()){
System.out.println(key + " : " + entries.get(key));
}
scanner.close();
//Adding a new entry in memory
entries.put("pizza", new Integer(5));
//Saving all entries in the data file
try(BufferedWriter bw = new BufferedWriter(new FileWriter("data"))){
for(String key : entries.keySet()){
bw.write(key + " : " + entries.get(key) + ",");
bw.flush();
bw.newLine();
}
}
}
}
打印:
play : 20
sleep : 20
money : 50
food : 100
之后的文件等于:
play : 20,
sleep : 20,
pizza : 5,
money : 50,
food : 100,