想从网络上读取一些网页的数据(html或者xml代码),已经些好了,但是读出的格式不对,想将读出的文件写成GBK的编码格式的,用了java.io.OutputStreamWriter可是输出的文件中什么内容都没有,怎么回事啊,高手指点!下面是源码:
URL url = new URL("http://www.aaa.com/index.html");
        URLConnection uc = url.openConnection();
        InputStream is = uc.getInputStream();
        File file = new File("d:\\xml");
        if (file.exists()) {
            file.delete();
            file.createNewFile();
        }
        FileOutputStream outer = new FileOutputStream(file);
        OutputStreamWriter outWriter = new OutputStreamWriter(outer, "GBK");
        int i = 0;
        while ((i = is.read()) != -1) {
            outWriter.write(i);
        }
        is.close();
我错在哪里啊?
或者还有更好的方法实现我所需要的么?记住,文件要保存成GBK的编码格式。

解决方案 »

  1.   


    is.close();之前加一句outWriter.flush();就可以了
    因为OutputStreamWriter只是写到缓存中要刷到文件中才可以
      

  2.   

    URL url = new URL("http://127.0.0.1/");        InputStream is = url.openStream();
            
            File file = new File("d:\\test.txt");
            if (file.exists()) {
                file.delete();
                file.createNewFile();
            }
            FileOutputStream outer = new FileOutputStream(file);
            OutputStreamWriter outWriter = new OutputStreamWriter(outer, "GBK");        BufferedReader bi = new BufferedReader(new InputStreamReader(is,"GBK"));
            String str = null;
            while ((str = bi.readLine()) != null) {
                outWriter.write(str);
            }
            outWriter.flush();
            bi.close();
            is.close();这样也可以