java之文件输入输出流之文件的拷贝
2019-06-02 18:05
169 查看
1.简单文件写入数据操作
package com.feng; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; public class FileDemo1 { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub /* * FileOutPutStream:表示文件输入流,用渔网文件写内容 * * 构造方法 * FileOutPutStream(String name) * FileOutPutStream(File file) * * 方法 * write(int b);//每次写一个字节 */ //1.创建文件输出流对象 //FileOutputStream fos=new FileOutputStream(new File("b.txt")); //OutputStream otS=new FileOutputStream("a.txt");//多态写法 FileOutputStream fos=new FileOutputStream("b.txt"); //2.单个数据写入 // fos.write(97);//a // fos.write(98);//b // fos.write(99);//c byte[] bytes= {97,98,99,100,101};//一次性写多个字节 fos.write(bytes); //3.关闭流 fos.close(); } }
2.一个字节一个字节的读取(速度慢)
package com.feng; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class picure { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub //案例拷贝图片 /* * */ //先创建输入流对象和输出流对象 FileInputStream fis=new FileInputStream("C:\\Users\\Zhanglinfeng\\Desktop\\ma.png"); FileOutputStream fos=new FileOutputStream("C:\\Users\\Zhanglinfeng\\Desktop\\ma2.png"); //2.通过输入流读取数据 int b=0; while ((b=fis.read())!=-1) { //通过输出流写入图片数据 fos.write(b); } //4.关闭流 fos.close(); fis.close(); System.out.println("图片拷贝成功!"); } }
3.一次性复制文件操作(当心内存溢出)
package com.feng; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class picture2 { public static void main(String[] args) throws IOException { /* * 不建议使用这种方法 * 字节数组拷贝之available()方法 */ File file=new File("C:\\\\Users\\\\Zhanglinfeng\\\\Desktop\\\\ma.png"); File file2=new File("C:\\\\Users\\\\Zhanglinfeng\\\\Desktop\\\\ma-副本.png"); //1.文件输入流 FileInputStream fis=new FileInputStream(file); int size=fis.available();//返回文件长度(字节为单位) System.out.println("size="+size); //2.现在一次读文件大小字节 //2.1定义一个字节数组 byte[] bytes=new byte[size]; //2.2把数据读到字节数组中 fis.read(bytes);//返回读取到的实际长度 //3.把字节数组一次性写入文件 FileOutputStream fos=new FileOutputStream(file2); fos.write(bytes); fis.close(); fos.close(); System.out.println("图片拷贝成功"); } }
4.最优拷贝(自定义读取长度)
package com.feng; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class picture3 { public static void main(String[] args) throws IOException { /* * 选择读取的长度 */ File file = new File("C:\\\\Users\\\\Zhanglinfeng\\\\Desktop\\\\ma.png"); File file2 = new File("C:\\\\Users\\\\Zhanglinfeng\\\\Desktop\\\\ma-副本.png"); //输入流 FileInputStream fis = new FileInputStream(file); //输出流 FileOutputStream fos = new FileOutputStream(file2); byte[] bytes=new byte[1024*8];//定义一个8KB的字节空数组 int len=0; int count=0; while ((len=fis.read(bytes))!=-1) { fos.write(bytes, 0, len);//从零的位置读到最后一次读取的实际大小 count++; } fis.close(); fos.close(); System.out.println("文件读取次数"+count); System.out.println("图片拷贝成功!"); } }
相关文章推荐
- 用java实现文件的拷贝
- Java实现文件拷贝的4种方法.
- 5、 java 编写程序拷贝一个文件, 尽量使用效率高的方式.
- Java的文件(读写)输入输出
- java 文件拷贝
- java 实现 文件操作工具集。包括文件、目录树的拷贝、删除、移动、查找等工具函数...
- 学习笔记之java---文件操作之输入输出
- 【基础篇】java中输入输出的总括—— 随机文件操作
- java实现文件拷贝
- Java实现文件拷贝的4种方法
- java 文件拷贝:简单拷贝,jar、war等里面的拷贝
- java 文件夹拷贝(文件夹里包含文件和文件夹) 代码
- 用java实现的文件和文件夹拷贝和转移
- java实现批量拷贝音乐文件
- 【基础篇】java中输入输出的总括——文件过滤器
- Java实现分类文件拷贝3
- Java实现文件拷贝的4种方法
- JAVA四种方法拷贝文件
- Java实现文件拷贝的4种方法
- 文件的读与拷贝在java程序中的区别