java文件读写的两种方式
2014-12-12 18:54
399 查看
今天搞了下java文件的读写,自己也总结了一下,但是不全,只有两种方式,先直接看代码:
第一种使用的是FileInputStream和FileOutputStream,这种方式是直接使用io流读数据。不管什么文件可以搞定。但是缺点是没读一次就要进行一次io操作,若是文件大了,销量很低。
第二种使用BufferedReader 和BufferedWrite。与前面的区别是使用了缓存,读取的是字符(FileInputStream是字节)。所以之前在使用BufferedReader 和BufferedWrite复制一个压缩文件时,复制后的文件总是原文件大小的2倍。
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倍。
相关文章推荐
- java.util.Arrays.sort两种方式的排序(及文件读写练习)
- Java文件读写(两种方式)
- Java8学习——文件读写的两种方式
- java 实现文件复制的两种方式
- Java基础之IO流,以字节流的方式操作读写文件FileOutputStream和FileInputStream的使用
- 用CSV文件读写数据的两种方式
- Java IO读写大文件的几种方式及测试
- [Java]文件读写的两种方法
- 关于java下的明确编码方式的文件读写操作总结
- 用CSV文件读写数据的两种方式
- Java文件编译的两种方式以及在SpringMVC传参中带来的问题
- Java中复制文件的两种方式
- Java IO读写大文件的几种方式及测试
- Java 多种文件读写方式
- Java IO读写大文件的几种方式及测试
- Java 文件读写方式
- java文件读写编码方式设置
- C语言读写文件两种方式ASCII 和 二进制。
- Java文件读写操作指定编码方式。。。。。
- 用CSV文件读写数据的两种方式(转)