字符拷贝和字节拷贝文件对比(FileInputStream,FileOutputStream, FileReader, FileWriter)
2016-05-31 14:08
567 查看
拷贝文件的思想就是从源文件路径读取文件,然后往目标文件路径写入文件!
两者区别:字节流无缓冲区,字符流有缓冲区,必须关闭流(close操作)或者清空缓冲区(flush操作)才能写入成功
1:按字节拷贝文件( FileInputStream,FileOutputStream)
import java.io.FileInputStream;
public class FileCopy
{
public static void main(String[] args)
{
// 将 A 文件 拷贝到 B 文件
FileInputStream fis = null;
FileOutputStream fos = null;
try
{
fis = new FileInputStream("C:\\Users\\User02\\Desktop\\io.png");
fos = new FileOutputStream("C:\\Users\\User02\\Desktop\\io.txt",true);
// 默认会覆盖原有的数据,如果想追加append
byte[] b = new byte[10];
int i = 0;
while((i = fis.read(b)) != -1)
{
fos.write(b,0,i);
}
}
catch (Exception e)
{
e.printStackTrace();
}finally{
if(fis != null)
{
try
{
fis.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
if(fos != null)
{
try
{
fos.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
}
2:按字符拷贝文件(FileReader, FileWriter)
import java.io.FileInputStream;
public class TestFileReaderAndWriter
{
public static void main(String[] args)
{
// 将 A 文件 拷贝到 B 文件
FileReader fr = null;
FileWriter fw = null;
try
{
fr = new FileReader("src/com/itany/coreJava/day18/a.txt");
fw = new FileWriter("src/com/itany/coreJava/day18/b.txt");
// 默认会覆盖原有的数据,如果想追加append
System.out.println(fr.getEncoding());
char[] b = new char[10];
int i = 0;
while((i = fr.read(b)) != -1)
{
fw.write(b,0,i);
}
}
catch (Exception e)
{
e.printStackTrace();
}finally{
if(fw != null)
{
try
{
fw.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
if(fr != null)
{
try
{
fr.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
}
两者区别:字节流无缓冲区,字符流有缓冲区,必须关闭流(close操作)或者清空缓冲区(flush操作)才能写入成功
1:按字节拷贝文件( FileInputStream,FileOutputStream)
import java.io.FileInputStream;
public class FileCopy
{
public static void main(String[] args)
{
// 将 A 文件 拷贝到 B 文件
FileInputStream fis = null;
FileOutputStream fos = null;
try
{
fis = new FileInputStream("C:\\Users\\User02\\Desktop\\io.png");
fos = new FileOutputStream("C:\\Users\\User02\\Desktop\\io.txt",true);
// 默认会覆盖原有的数据,如果想追加append
byte[] b = new byte[10];
int i = 0;
while((i = fis.read(b)) != -1)
{
fos.write(b,0,i);
}
}
catch (Exception e)
{
e.printStackTrace();
}finally{
if(fis != null)
{
try
{
fis.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
if(fos != null)
{
try
{
fos.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
}
2:按字符拷贝文件(FileReader, FileWriter)
import java.io.FileInputStream;
public class TestFileReaderAndWriter
{
public static void main(String[] args)
{
// 将 A 文件 拷贝到 B 文件
FileReader fr = null;
FileWriter fw = null;
try
{
fr = new FileReader("src/com/itany/coreJava/day18/a.txt");
fw = new FileWriter("src/com/itany/coreJava/day18/b.txt");
// 默认会覆盖原有的数据,如果想追加append
System.out.println(fr.getEncoding());
char[] b = new char[10];
int i = 0;
while((i = fr.read(b)) != -1)
{
fw.write(b,0,i);
}
}
catch (Exception e)
{
e.printStackTrace();
}finally{
if(fw != null)
{
try
{
fw.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
if(fr != null)
{
try
{
fr.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
}
相关文章推荐
- [PHP源码阅读]count函数
- mac 下如何开启 ftp server
- mysql修改密码后,phpMyadmin无法登陆
- php数组
- PHP字符串——编码与转义
- PHP之缩略图
- PHP——字符串处理部分
- laravel 配置 No supported encrypter found
- SetProcessShutdownParameters
- Zabbix利用msmtp+mutt发送邮件报警
- php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
- [置顶] 【PHP开发】Mac系统配置MAMP+Thinkphp框架环境 教程(一)
- php+html+js 全选删除
- php安装libiconv-1.14.tar.gz遇到的问题
- php如何统计下载成功次数
- php防止会话固定攻击
- PHP并发IO编程之路
- PHP header使用
- yii2框架-yii2的核心验证器(八)
- php 日期时间运算比较