将JSON与JavaNIO结合使用
我有一个使用json文件的程序。我在文件中写入一个jsonobject,然后从文件中读取并解析它 对于在我使用的文件上写入:将JSON与JavaNIO结合使用,java,json,nio,Java,Json,Nio,我有一个使用json文件的程序。我在文件中写入一个jsonobject,然后从文件中读取并解析它 对于在我使用的文件上写入: File file=new File(nomeFile); try { file.createNewFile(); FileWriter fileWriter = new FileWriter(file); fileWriter.write(obj.toJSONString())
File file=new File(nomeFile);
try {
file.createNewFile();
FileWriter fileWriter = new FileWriter(file);
fileWriter.write(obj.toJSONString());
fileWriter.flush();
fileWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
并阅读:
try {
FileReader f=new FileReader(file);
obj =parser.parse(f);
JSONObject jsonObj = (JSONObject) obj;
//and i do the get
现在我必须更改此代码以使用NIO而不是IO
可能吗?
我怎么做?
谢谢您可以查看本文并 快速尝试: 对于写入:
Path path = Paths.get("src/main/resources/question.txt");
String question = "To be or not to be?";
Files.write(path, question.getBytes());
全文如下:
Path path = Paths.get("src/main/resources/shakespeare.txt");
try {
Files.lines(path).forEach(System.out::println);//print each line
} catch (IOException ex) {
ex.printStackTrace();//handle exception here
}
写入:
Gson gson = new Gson();
try (FileWriter fw = new FileWriter(CLI_FILES_DIR + File.separator + "applications" + File.separator + "yourFile.json")) {
BufferedWriter bw = new BufferedWriter(fw);
bw.write(gson.toJson(yourObject));
bw.flush();
bw.close();
} catch (IOException e) {
logger.error("IOException: {}", e.getMessage(), e);
}
try (BufferedReader bufferedReader = new BufferedReader(new FileReader(CLI_FILES_DIR + File.separator + "applications" + File.separator + "yourFile.json"))) {
YourObject yourObject = gson.fromJson(bufferedReader, YourObject.class);
...
} catch (IOException e) {
logger.error("IOException: {}", e.getMessage(), e);
}
阅读:
Gson gson = new Gson();
try (FileWriter fw = new FileWriter(CLI_FILES_DIR + File.separator + "applications" + File.separator + "yourFile.json")) {
BufferedWriter bw = new BufferedWriter(fw);
bw.write(gson.toJson(yourObject));
bw.flush();
bw.close();
} catch (IOException e) {
logger.error("IOException: {}", e.getMessage(), e);
}
try (BufferedReader bufferedReader = new BufferedReader(new FileReader(CLI_FILES_DIR + File.separator + "applications" + File.separator + "yourFile.json"))) {
YourObject yourObject = gson.fromJson(bufferedReader, YourObject.class);
...
} catch (IOException e) {
logger.error("IOException: {}", e.getMessage(), e);
}
您可以找到一个完整的示例
文件
,文件编写器
,文件阅读器
应该与Java NIO兼容。您希望使用哪些NIO特定的类和方法?您不想读/写文件吗?file.createNewFile()
在这里完全没有意义,或者更糟newfilewriter(…)
已经这样做了,您现在正在强制它删除刚刚创建的文件。但是bufferedReader在IO中,而不是在NIO中。我不能用IO:(这是problem@Alice你不能使用java.io
为什么?在这种情况下使用它是完全正常的。@Alice我有同样的问题:你不能使用java.io为什么?这是我练习的要求