将 URL 数据写入文件为空
Write URL data to file is empty
我正在尝试从 URL 获取数据并将其写入文件,我从 URL 获取数据但文件为空,在我的代码下方:
public class LiveRead {
public static void main(String[] args){
try {
URL u = new URL("http://quotes.rest/qod.json?category=life");
HttpURLConnection hr = (HttpURLConnection) u.openConnection();
if (hr.getResponseCode() == 200){
InputStream im = hr.getInputStream();
StringBuffer sb = new StringBuffer();
BufferedReader br = new BufferedReader(new InputStreamReader(im));
FileOutputStream fo = new FileOutputStream("/Users/macos/Desktop/json");
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fo));
String line = br.readLine();
while (line != null){
System.out.println(line);
bw.write(line);
bw.newLine();
line = br.readLine();
}
}
} catch (Exception e) {
System.out.println(e);
}
}
}
当我打开 /Users/macos/Desktop/json
时,该文件是空的。出了什么问题以及如何解决?
您应该明确地 flush
和 close
您的作者,而不是假设 Java 会在程序终止时为您完成:
bw.flush();
bw.close();
我正在尝试从 URL 获取数据并将其写入文件,我从 URL 获取数据但文件为空,在我的代码下方:
public class LiveRead {
public static void main(String[] args){
try {
URL u = new URL("http://quotes.rest/qod.json?category=life");
HttpURLConnection hr = (HttpURLConnection) u.openConnection();
if (hr.getResponseCode() == 200){
InputStream im = hr.getInputStream();
StringBuffer sb = new StringBuffer();
BufferedReader br = new BufferedReader(new InputStreamReader(im));
FileOutputStream fo = new FileOutputStream("/Users/macos/Desktop/json");
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fo));
String line = br.readLine();
while (line != null){
System.out.println(line);
bw.write(line);
bw.newLine();
line = br.readLine();
}
}
} catch (Exception e) {
System.out.println(e);
}
}
}
当我打开 /Users/macos/Desktop/json
时,该文件是空的。出了什么问题以及如何解决?
您应该明确地 flush
和 close
您的作者,而不是假设 Java 会在程序终止时为您完成:
bw.flush();
bw.close();