实例讲述Java IO文件复制
时间:2019-04-13
本文章向大家介绍实例讲述Java IO文件复制,主要包括实例讲述Java IO文件复制使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言:IO流主要分为两大类,分别是字节流与字符流
注意:
1、音频文件、图片、视频(范围广),就用字节流
2、只涉及到文本的,就用字符流
使用字节流复制文本内容(其他文件也可以)
代码如下:
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class CopyFile { public static void main(String[] args) { try{ File inFile=new File("src.txt"); //源文件 InputStream in=new FileInputStream(inFile); //文件输入流 File outFile=new File("tar.txt"); //目标文件 OutputStream out=new FileOutputStream(outFile); //文件输出流 byte[] buff=new byte[1024]; //创建缓冲区,分配1024个字节大小的内存给buff int num=0; while((num=in.read(buff))!=-1){ //判断每次读取的最大字节数是否为1024 out.write(buff,0,num); // out.write(buff); //这样也可以,不过容易造成文件内容不正确 out.flush(); //刷新缓冲区 String s=new String(buff); System.out.println("文件内容复制成功"); System.out.println("文件复制内容为\n"+s); } in.close(); //关闭输入流 out.close(); //关闭输出流 // inFile.delete(); //删除源文件 // outFile.renameTo(new File("reName.txt")); //输出文件重命名 } catch(FileNotFoundException e){ e.printStackTrace(); //在命令行打印异常信息在程序中出错的位置及原因 } catch(IOException e){ e.printStackTrace(); } } }
使用字符流复制文本内容(仅限文本文件)
代码如下:
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class CopyFile{ public static void main(String[] args) { try{ File inFile=new File("D:/src.txt"); //源文件 FileReader fileReader=new FileReader(inFile); //读取文件字符流 BufferedReader bufferedReader=new BufferedReader(fileReader); //把读取到的字符流放入缓存 File outFile=new File("D:/tar.txt"); //目标文件 FileWriter fileWrite=new FileWriter(outFile); //写入字符流 BufferedWriter bufferedWriter=new BufferedWriter(fileWrite); //把要输入的字符流放入缓存 String s=""; String str = ""; while((s=bufferedReader.readLine())!=null){ //判断文件字符流是否读取完毕 bufferedWriter.write(s); //字符流缓存写入文件 bufferedWriter.newLine(); //按行读取,遇到换行符则换行 bufferedWriter.flush(); //刷新缓存 str+=s; } System.out.println("文件复制内容为\n"+str); //关闭输入输出流 fileReader.close();bufferedReader.close(); fileWrite.close();bufferedWriter.close(); // inFile.delete(); //删除源文件 // outFile.renameTo(new File("reName.txt")); //输出文件重命名 } catch(FileNotFoundException e){ e.printStackTrace(); //在命令行打印异常信息在程序中出错的位置及原因 } catch(IOException e){ e.printStackTrace(); } } }
说明:
如果想以追加文件内容,而不是覆盖的方式来复制文本内容,则修改如下
OutputStream out=new FileOutputStream(outFile,true); //字节流
FileWriter fileWrite=new FileWriter(outFile,true); //字符流
如果要在字符流指定缓存区大小,则修改如下
BufferedWriter bufferedWriter=new BufferedWriter(fileWrite,1024);
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 1.Dubbo 常见错误及解决方法
- SpringBoot学习一:创建工程、pom文件
- SpringBoot学习二:基础配置
- Spring Boot 学习三:静态资源、整合 Thymeleaf 页面模板、@RestControllerAdvice
- SpringBoot学习四:日志框架、SpringBoot自动化配置
- SpringBoot学习五:错误处理、跨域支持
- Spring Security安全
- SpringBoot定时任务
- MySQL优化以及索引的使用
- 前端表单提交String类型数据后端转日期数据
- Java - CentOS下JDK的安装与配置
- yum安装与配置 Tomcat
- org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, “xxxx“)] with root cause
- UnsatisfiedDependencyException
- Java8 Collectors.toMap的key重复