读入 http://www.sina.com.cn 网页的内容,并以可读形式将其输出到一个文件中去
import java.io.*; import java.net.URL; /** * Created by Wu on 2017/4/17. */ public class ReadURL { public static void main(String args[]) throws Exception{ URL u = new URL("http://www.sina.com"); InputStream is = u.openStream(); is = new BufferedInputStream(is); Reader r = new InputStreamReader(is,"UTF-8"); FileOutputStream fos = new FileOutputStream("./sina.html"); OutputStreamWriter writer = new OutputStreamWriter(fos,"UTF-8"); int c = 0; while((c = r.read())!=-1){ writer.write(c); } writer.close(); } }
创建一个新浪url的InputStream类 is,再创建一个InputStreamReader r读取 is,此时注意要传入编码参数UTF-8,因为若是使用默认编码参数,会自动使用系统的编码方式。下图可以发现电脑的默认编码方式为GBK。(IntelliJ IDEA在settings->Editor->File Encodings 中查看)
因为网页的编码格式是UTF-8,所以若是不穿参的话会导致网页中文乱码。之后再创建FileOutputStream类和OutputWriter将网页写入文件。运行程序我们可得如下结果
打开此url
并未出现中文乱码