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 io 文件复制_实例讲述Java IO文件复制相关推荐
- java正则截取xml节点_实例讲述Java使用正则表达式截取重复出现的XML字符串功能...
Java使用正则表达式截取重复出现的XML字符串功能示例 本文实例讲述了Java使用正则表达式截取重复出现的XML字符串功能.分享给大家供大家参考,具体如下: public static void m ...
- java自旋锁使用_实例讲解Java 自旋锁
一直以来不是怎么清楚自旋锁,最近有点时间,好好的学习了一下: 所谓的自旋锁在我的理解就是多个线程在尝试获取锁的时候,其中一个线程获取锁之后,其他的线程都处在一直尝试获取锁的状态,不会阻塞!!!那么什么 ...
- java pdf添加图章_实例讲解Java处理PDF图章的方法
图章(印章)是一种在合同.票据.公文等文件中表明法律效应.部门机关权威的重要指示物,常见于各种格式的文件.文档中.对于纸质文档可以手动盖章,但对于电子文档,则需要通过特定的方法来实现.本篇文档分享通过 ...
- java获取u盘_实例分享java监听u盘的方法
package org.load.u; import java.io.File; import java.util.LinkedHashMap; import java.util.Map; // U盘 ...
- java thread exit方法_实例分析Java终止线程和stop()方法
Java终止线程实例和stop()方法源码阅读 了解线程 概念 线程 是程序中的执行线程.Java 虚拟机允许应用程序并发地运行多个执行线程. 线程特点 拥有状态,表示线程的状态,同一时刻中,JVM中 ...
- java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...
如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径 我有一个包含2个包的项目: ListStopWords.txt ListStopWords.txt 在包(2)中我有 ...
- flex java 上传下载_完整的Flex多文件上传实例
客户端代码:fileUpload.xml-------------------------------------------------------------------------------- ...
- java服务器gc停顿_如何避免后台IO高负载造成的长时间JVM GC停顿(转)
译者著:其实本文的中心意思非常简单,没有耐心的读者建议直接拉到最后看结论部分,有兴趣的读者可以详细阅读一下. 原文发表于Linkedin Engineering,作者 Zhenyun Zhuang是L ...
- java zip文件夹_如何使用java压缩文件夹成为zip包
展开全部 在JDK中有一个zip工具类:java.util.zip Provides classes for reading and writing the standard ZIP and G ...
最新文章
- STL中的lower_bound() 和 upper_bound()
- JavaScript实现浏览器菜单的一些功能
- Android大图片裁剪终极解决方案
- 此windows副本不是正版解决方法
- 等保2.0标准_信息安全技术标准与等保2.0
- 安装SQL Server 2005时,出现“SQL Server 服务无法启动。……”提示的解决方法
- 安装nodejs express框架时express命令行无效
- bootstrap模态框垂直居中显示
- matlab矩阵处理实验报告,matlab实验报告一二三
- html转换pdf中文失败,解决html导出pdf中文乱码问题的正确姿势
- 如何在ecshop订单中显示客户给商家的留言
- 秒懂VRRP协议原理及配置
- 解决QQ邮箱接收不到Stream邮件问题
- 东方财富 自动止损程序
- 使用虹软SDK实现离线人脸识别(局域网)
- Facebook新闻摘要算法是怎样的
- map初步(由ABBC---A2BC)
- Linux运行SQL文件
- 《阿凡达2》上映在即,3D渲染如何突破想象?
- 14.Adaptive AUTOSAR 架构-身份及访问管理(IAM)