java文件读写的两种方法ITeye - 娱乐之横扫全球

java文件读写的两种方法ITeye

2019年03月09日10时43分48秒 | 作者: 念蕾 | 标签: 文件,方法,读写 | 浏览: 1109

今日搞了下java文件的读写,自己也总结了一下,可是不全,只要两种方法,先直接看代码:

public static void main(String[] args) throws IOException {
 io();
 buffer();
 * 以流的方法读写 能够运用任何文件 特别是二进制文件
 * @author hh
 * @date 2014-12-11
 * @throws IOException
 public static void io() throws IOException {
 String fname = "C:/Users/Administrator/Desktop/T.jar"; 
 String fname2 = "C:/Users/Administrator/Desktop/T2.rar"; 
 File file = new File(fname);
 File file2 = new File(fname2);
 FileInputStream in = new FileInputStream(file);
 FileOutputStream out = new FileOutputStream(file2);
 byte[] bytes= new byte[2048];
 int k = 0;
 while((k=in.read(bytes))!=-1){
 out.write(bytes);
 /*for (int i = 0; i bytes.length; i++) {//这样功率很低
 out.write(bytes[i]);
 /*或许
 * int b = 0 ;
 while((b=in.read())!=-1) { 
 out .write(b); 
 } */
 out.close();
 in.close();
 System.out.println("end");
 * 以字符的方法读写 实用文文本文件
 * 不适用与紧缩等二进制文件 否者写出来的文件会比源文件大
 * @author hh
 * @date 2014-12-11
 * @throws IOException
 public static void buffer() throws IOException {
 String fname = "C:/Users/Administrator/Desktop/1234.txt"; 
 String fname2 = "C:/Users/Administrator/Desktop/kk.txt"; 
 File file = new File(fname); 
 InputStreamReader read = new InputStreamReader(new FileInputStream(file),"GBK");//处理中文乱码 
 //FileReader read = new FileReader(file); 也能够直接运用FileReader 可是会出想中文乱码
 FileWriter fw = new FileWriter(fname2);
 BufferedReader bufferedReader = new BufferedReader(read);
 BufferedWriter b = new BufferedWriter(fw);
 String s =null;
 while ((s = bufferedReader.readLine()) !=null) { 
 System.out.println(s);
 b.write(s); 
 b.newLine();//换行
 b.flush();
 b.close();
 read.close();
 fw.close();
 System.out.println("-end");
 }

第一种运用的是FileInputStream和FileOutputStream,这种方法是直接运用io流读数据。不管什么文件能够搞定。可是缺陷是没读一次就要进行一次io操作,若是文件大了,销量很低。

第二种运用BufferedReader 和BufferedWrite。与前面的区别是运用了缓存,读取的是字符(FileInputStream是字节)。所以之前在运用BufferedReader 和BufferedWrite仿制一个紧缩文件时,仿制后的文件总是原文件巨细的2倍。

萌萌的IT人
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表娱乐之横扫全球立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章