同样是 下载文件,但是字符流中却不能打开文件,而字节流却能打开,不知道为啥?
/** * 用的是字符流操作,竟然打不开 * @param url * @param fileName * @param title */ public static void downloadByURLAndName(String url,String fileName,String title){ System.out.println("downloadByURLAndName"); try { URL httpUrl=new URL(url); HttpURLConnection con=(HttpURLConnection)httpUrl.openConnection(); InputStreamReader ins=new InputStreamReader(con.getInputStream(),"utf-8"); BufferedReader br=new BufferedReader(ins); new File("F:\\imooc/Java/"+title+"/").mkdir(); File file=new File("F:\\imooc/Java/"+title+"/"+fileName); FileWriter fileWriter=new FileWriter(file); String str=""; while((str=br.readLine())!=null){ fileWriter.write(str); fileWriter.flush(); } fileWriter.close(); br.close(); ins.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 用字节流处理,竟然可以 * @param url * @param fileName * @param title */ public static void downloadByURLAndName2(String url,String fileName,String title){ // System.out.println("downloadByURLAndName"); long startTime; long bytes; startTime=System.currentTimeMillis(); bytes=0; try { URL httpUrl=new URL(url); HttpURLConnection con=(HttpURLConnection)httpUrl.openConnection(); InputStream in=con.getInputStream(); new File("F:\\imooc/Java/"+title+"/").mkdir(); File file=new File("F:\\imooc/Java/"+title+"/"+fileName); FileOutputStream fos=new FileOutputStream(file); byte[] b=new byte[512*1024]; int len; while((len=in.read(b))!=-1){ bytes+=len; fos.write(b, 0, len); } fos.close(); in.close(); System.out.println(fileName+"下载完成"); long endTime=System.currentTimeMillis(); long bp=(bytes/((endTime-startTime))); Main.bps.add(bp); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }