Java中的字节流,字符流,字节缓冲区,字符缓冲区复制文件
一:创建方式
1、建立输入(读)对象,并绑定数据源
2、建立输出(写)对象,并绑定目的地
3、将读到的内容遍历出来,然后在通过字符或者字节写入
4、资源访问过后关闭,先创建的后关闭,后创建的先关闭
总结:创建的方式都是差不多的,只不过是使用的输入和输出流不一样。
二:四种流复制文件的例子:
1、字节流复制文件
//1、字节流复制文件
public static void fun(File src,File desc ) throws Exception{
//建立字节流输入(读)对象,并绑定数据源
FileInputStream fis = new FileInputStream(src);
//建立字节流输出(写)对象,并绑定目的地
FileOutputStream fos=new FileOutputStream(desc);
int len=0;
byte[] b=new byte[1024];
//将读到的内容遍历出来,然后在通过字节写入
while((len=fis.read(b))!=-1){
fos.write(b,0,len);
}
//资源访问过后关闭,先创建的后关闭,后创建的先关闭
fos.close();
fis.close();
}
2、字符流复制文件
//2、字符流复制文件
public static void fun1(File src,File desc) throws Exception{
//建立字符流输入(读)对象,并绑定数据源
FileReader fReader=new FileReader(src);
//建立字符流输出(写)对象,并绑定目的地
FileWriter fWriter=new FileWriter(desc);
int len=0;
char[] b=new char[1024];
//遍历出需复制的文件的字节,一个字符一个字符的写入复制过后的新文件中
while((len=fReader.read(b))!=-1){
fWriter.write(b,0,len);
}
//资源访问过后关闭,先创建的后关闭,后创建的先关闭
fWriter.close();
fReader.close();
}
3、字节缓冲区复制文件
//3、字节缓冲区复制文件
public static void fun2(File src,File desc) throws Exception{
//建立字节缓冲流输入(读)对象,并绑定数据源
BufferedInputStream bu=new BufferedInputStream(new FileInputStream(src));
//建立字节缓冲流输出(写)对象,并绑定目的地
BufferedOutputStream ou=new BufferedOutputStream(new FileOutputStream(desc));
int len=0;
byte[] by=new byte[1024];
//将读到的内容遍历出来,然后在通过字节写入
while((len=bu.read(by))!=-1){
ou.write(by,0,len);
}
//资源访问过后关闭,先创建的后关闭,后创建的先关闭
ou.close();
bu.close();
}
4、字符缓冲区复制文件
//4、字符缓冲区复制文件
public static void fun3(File src,File desc) throws Exception{
//建立字符缓冲流输入(读)对象,并绑定数据源
BufferedReader br=new BufferedReader(new FileReader(src));
//建立字符缓冲流输出(写)对象,并绑定目的地
BufferedWriter bw=new BufferedWriter(new FileWriter(desc));
String len="";
char[] c=new char[1024];
//将读到的内容遍历出来,然后在通过字符写入
while((len=br.readLine())!=null){
bw.write(c,0,len.length());
}
//资源访问过后关闭,先创建的后关闭,后创建的先关闭
bw.close();
br.close();
}
调用方法:
方法名(参数1,参数2);
其中我的参数1写的是读的对象也就是数据源,参数2代表的是要写入的目的地
fun(new File("c:\\bu.txt"),new File("d:\\kk.txt"));
Java中的字节流,字符流,字节缓冲区,字符缓冲区复制文件的更多相关文章
- java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝
接上一篇的字节流,以下主要介绍字符流.字符流和字节流的差别以及文件复制拷贝.在程序中一个字符等于两个字节.而一个汉字占俩个字节(一般有限面试会问:一个char是否能存下一个汉字,答案当然是能了,一个c ...
- Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
第一讲 IO概述 概述 1.IO流:即InputOutput的缩写. 2.特点: 1)IO流用来处理设备间的数据传输. 2)Java对数据的操作是通过流的方式. 3)Java用于操作流的对象都 ...
- Java IO 转换流 字节转字符流
Java IO 转换流 字节转字符流 @author ixenos 字节流 输入字节流:---------| InputStream 所有输入字节流的基类. 抽象类.------------| Fil ...
- JAVA之旅(二十四)——I/O流,字符流,FileWriter,IOException,文件续写,FileReader,小练习
JAVA之旅(二十四)--I/O流,字符流,FileWriter,IOException,文件续写,FileReader,小练习 JAVA之旅林林总总也是写了二十多篇了,我们今天终于是接触到了I/O了 ...
- java基础46 IO流技术(输出字符流/缓冲输出字符流)
一.输出字符流 1.1.输出字符流体系 --------| Writer:输出字符流的基类(抽象类) ----------| FileWriter:向文件输出数据输出字符流(把程序中的数据写到硬盘中 ...
- 关于java中char占几个字节,汉字占几个字节
我们平常说,java中char占2个字节,可又说汉字在不通的编码格式中所占的位数是不同的,比如gbk中汉字占2个字节,utf8中多数占3个字节,少数占4个.而所有汉字在java程序中我们都可以简单的用 ...
- (19)IO流之字符流FileReader和FileWriter,缓冲字符流---缓冲输入字符流BufferedReader和缓冲输出字符流BufferedWriter
字符流,读取的文件是字符的时候,有两个基类一个是Reader,一个是Writer这有点拟人的感觉,人直接看懂的是文字 字符流 字节流:读取的是文件中的二进制字节流并不会帮你转换成看的懂得字符 字符流: ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_07 缓冲流_4_缓冲流的效率测试_复制文件
把之前文件复制的代码复制到这里 一个字节一个字节的读取,复制文件 byte数组的形式 缓冲流测试 数组缓冲
- JAVA中的字节流与字符流
字节流与字符流的区别? 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用 ...
随机推荐
- 【Fiddler学习】Fiddler简介和Web抓包应用(转)
一.Fiddler是什么? Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的进出Fiddler的数据. Fiddler 要比其 ...
- 【Selenium-WebDriver自学】Selenium-IDE用户扩展(七)
==================================================================================================== ...
- 将浏览器的内容复制到Linux的文件里面
直接使用ctrl +c 复制的内容 用ctr +V贴入Linux系统文件的话,格式是乱的 可以使用EOF的方式 [root@centos7 ~]# cat <<EOF >tttt. ...
- 使用git时报错出现vim.exe.stackdump
使用git时报错出现vim.exe.stackdump 关闭命令行重新打开试试 一般由于异常报错引起的
- 56.纯 CSS 描述程序员的生活
原文地址:https://segmentfault.com/a/1190000015316996 感想:动画加延时,white-space: pre; 保留HTML p 中刻意留下的空白. HTML ...
- records.config中文详解
转载:http://www.safecdn.cn/cdn/2018/12/records-config-zh/106.html records.config参数的一些备注 CONFIG proxy.c ...
- SDE在64位Server2008下Post启动服务失败官方解释
解决了一个SDE启动问题,在此记录一下 在server 2008 64位下安装完arcgis sde之后,Post启动服务,总是失败 查看SDE日志(etc目录下) DB_open_instance( ...
- PHP企业微信配置点击事件。
1. 2. 3.URL接受值进行签名验证. <?phpinclude_once "../commmm/WXBizMsgCrypt.php";/*微信提供 demo*/// 假 ...
- python setattr
#object生成的对象不能使用setattr函数>>> o=object() >>> setattr(o,'name','ok') Traceback (most ...
- kubernetes添加删除重启节点
1.添加节点 (master)查看目前节点 [root@k8s-master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-maste ...