有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

json下载Web源Java

import java.io.*;
import java.util.*;
import java.net.*;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

public class URLReader {

     public static void main(String[] args) {
         download();
     }

     public static void download() {
         try {
             URL oracle = new URL("http://api.wunderground.com/api/54f05b23fd8fd4b0/geolookup/conditions/forecast/q/US/CO/Denver.json");
             BufferedReader in = new BufferedReader(
             new InputStreamReader(oracle.openStream()));

             File file = new File("C:\\Users\\User\\Desktop\\test2.json");
             if (!file.exists()) {
                 file.createNewFile();
             }
             FileWriter fw = new FileWriter(file.getAbsoluteFile());
         BufferedWriter bw = new BufferedWriter(fw);

             String inputLine;
             while ((inputLine = in.readLine()) != null) {
                 bw.write(inputLine+"\n");
             }
             in.close();
             System.out.println("Finished with no errors...");
         }
         catch(MalformedURLException e){System.out.println("err1");}
         catch(IOException e){System.out.println("err2");}
     }
}

我正试图将这个JSON文件下载到我的计算机上,但是它突然停止了。它在第8192个字符后结束,不再继续。否则效果很好,你知道我做错了什么吗

这也是下载网页源代码的正确方法吗?有人能给我一些更好的技术来帮助我吗


共 (1) 个答案

  1. # 1 楼答案

    您忘记关闭BufferedWriter:-)

    in.close();
    bw.close(); // Add this here
    System.out.println("Finished with no errors...");
    

    因此,writer可以将数据流的其余部分提交到该文件