首页 > 代码库 > IO流数据读写总结
IO流数据读写总结
1.用java自带的IO读写方法 官方API网站:http://docs.oracle.com/javase/7/docs/api/
2.Apache的Commons-io-2.4.jar中的方法,参考文档:http://commons.apache.org/proper/commons-io/javadocs/api-2.4/index.html
/* * 用apache的ommons-io-2.4.jar的ileUtils类中的方法读写数据 * 常用方法请参考帮助文档 * */ public void readWriteCopyFile(){ File file1 = new File("c:/to.txt"); File file2 = new File("c:/to_new.txt"); try { String input = FileUtils.readFileToString(file1,"gb2312"); System.out.println(input); FileUtils.copyFile(file1, file2); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } String fileName = "C:/to.txt"; File file = new File(fileName); String fileContent = ""; fileContent +="Helloworld"; try { FileUtils.writeStringToFile(file, fileContent, "gb2312"); } catch (IOException e) { e.printStackTrace(); } } /* * 用apache的ommons-io-2.4.jar的ileUtils类中的方法读写数据 * */ public void URLToFileTest(){ try { URL url = new URL("http://www.163.com"); File file = new File("c:\\163.html"); FileUtils.copyURLToFile(url, file); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /* * 用apache的ommons-io-2.4.jar的ileUtils类中的方法读写url内容数据 * */ public void readURL() throws IOException{ InputStream in = new URL( "http://www.blogjava.net/ashutc/archive/2010/07/13/325933.html" ).openStream(); try { System.out.println( IOUtils.toString( in ) ); } finally { IOUtils.closeQuietly(in); } } /* * 用apache的ommons-io-2.4.jar的ileUtils类中的方法读写url内容数据 * */ public void downTolocal(){ try { InputStream in = new URL("http://img4.cache.netease.com/tech/2015/12/10/201512101531442cb6f_550.png").openStream(); byte [] gif = IOUtils.toByteArray(in); //IOUtils.write(gif,new FileOutputStream(new File("c:/test.gif"))); //将字符串内容直接写到文件中 FileUtils.writeByteArrayToFile(new File("c:/test.png"),gif) ; //将字节数组内容写到文件中 System.out.println("done"); IOUtils.closeQuietly(in); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /* * 使用java自带的带有缓存区字节读写数据---提高读写速度 * */ public void RwByByteStream() { File fileIn = new File("D:/java.docx"); File fileOut = new File("D:/java_new.docx"); long before = System.currentTimeMillis(); FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream(fileIn); fos = new FileOutputStream(fileOut); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } BufferedInputStream bis = new BufferedInputStream(fis,100000); //设置缓冲区及大小 BufferedOutputStream bos = new BufferedOutputStream(fos,100000); //设置输出流缓冲区及大小 byte [] buffer = new byte[10000]; int l; int num = 0; try { while((l=bis.read(buffer))!=-1){ bos.write(buffer, 0, l); num++; } System.out.println(System.currentTimeMillis()-before+"ms"); System.out.println(num); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ try { bos.close(); fos.close(); bis.close(); fis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /* * 使用java字符流读写数据 * * */ public void RWByCharStream() { try { //File file = new File("d:/java.txt"); FileInputStream fis = new FileInputStream("d:/java.txt"); FileOutputStream fos = new FileOutputStream("d:/java_new.txt",true); InputStreamReader isr = new InputStreamReader(fis, "gb2312"); OutputStreamWriter osw = new OutputStreamWriter(fos, "gb2312"); char input[] = new char[100]; int l = 0; while ((l = isr.read(input)) != -1) { //String inputString = new String(input,0,l); osw.write(input,0,l); } isr.close(); fis.close(); osw.close(); fos.close(); System.out.println("done"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /* * 使用java缓冲区字符流读写数据 * * */ public void RWByBufferedCharStream() { try { //File file = new File("d:/java.txt"); FileInputStream fis = new FileInputStream("d:/java.txt"); FileOutputStream fos = new FileOutputStream("d:/java_new.txt",true); //加true表示追加写到这个文件中,否则覆盖此文件 InputStreamReader isr = new InputStreamReader(fis, "gb2312"); OutputStreamWriter osw = new OutputStreamWriter(fos, "gb2312"); BufferedReader br = new BufferedReader(isr); //设置缓冲区 BufferedWriter bw = new BufferedWriter(osw); // PrintWriter pw = new PrintWriter(osw); String input; while ((input = br.readLine()) != null) { bw.write(input); bw.newLine(); System.out.println(input); // pw.println(input); } br.close(); //各流后打开的先关闭,先打开后关闭 bw.flush(); bw.close(); // pw.close(); isr.close(); fis.close(); osw.close(); fos.close(); System.out.println("done"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
IO流数据读写总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。