Java基础 FileReader-FileWriter / 缓冲字符输入输出流 / 缓冲字节输入输出流 三种方式 进行文本文件的复制
2024-09-01 15:12:55
易错的地方:
/** 出错的地方:
* 1.缓冲流儿输出时,务必:flush();不然可能输出不尽!
* 2. bw缓冲字符输出流,记得这里! bw.write(b,0,len);
* 3.字符流不能复制除 纯文本文件 以外的其他文件,不然会损坏!!
* *1.对于非文本文件(视频/音频/图片)使用, 只能使用(字节)byte流! 也可以使用转换流提高速度233
* * 2.对于文本文件 ,大型文件的话,建议使用字符流(FileReaderWriter)!
*/
总的笔记:
/** 出错的地方:
* 1.缓冲流儿输出时,务必:flush();不然可能输出不尽!
* 2. bw缓冲字符输出流,记得这里! bw.write(b,0,len);
* 3.字符流不能复制除 纯文本文件 以外的其他文件,不然会损坏!!
* *1.对于非文本文件(视频/音频/图片)使用, 只能使用(字节)byte流! 也可以使用转换流提高速度233
* * 2.对于文本文件 ,大型文件的话,建议使用字符流(FileReaderWriter)!
*/ /**字符流处理步骤:
* ①声明②加载地址③read/write④close流)
*----------------------------------------------------------------------------
* 缓冲流(处理流的一种,相较于加速之前的操作)
* BufferedInputStream read()
* BufferedOutputStream write(),flush():刷新一次,确保输出完
* BufferedReader readLine(): 复制一行!
* BufferedWriter flush() //刷新一次,确保输出完
三种方式:
//实验1: 同时使用FileReader / FileWriter 进行文本文件的复制,不支持中文!
@Test //实验1: 同时使用FileReader / FileWriter 进行文本文件的复制,不支持中文!
public void testFileReaderWriter() throws IOException {
FileReader fr=null;
FileWriter fw=null;
File src=new File("D:\\SZS文件夹\\IO\\hello.txt");
File dest=new File("D:\\SZS文件夹\\IO\\复制的hello.txt");
try {
fr=new FileReader(src);
fw=new FileWriter(dest);
char[] ch= new char[10];
int len=0;
while((len=fr.read(ch))!=-1 ){
fw.write(ch);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
fr.close();
fw.close();
}
}
//实验2: 同时使用BufferInputStream和BufferOutputStream进行图片 的复制
@Test //实验2: 同时使用BufferInputStream和BufferOutputStream进行图片 的复制
public void testBufferStream() throws IOException{
//①声明②加载字节流,缓冲流③read/write④close缓冲流)
File src=new File("D:\\SZS文件夹\\IO\\TIM截图20181017161349.png");
File dest=new File("D:\\SZS文件夹\\IO\\复制的TIM截图.png");
FileInputStream fis= new FileInputStream(src);
FileOutputStream fos = new FileOutputStream(dest); BufferedInputStream bis=new BufferedInputStream(fis);
BufferedOutputStream bos=new BufferedOutputStream(fos); byte[] b=new byte[1024];
int len;
while((len=bis.read(b))!=-1)
bos.write(b,0,len); bis.close();
bos.close();
}
//实验3: 同时使用BufferedReader 和 BufferedWriter 进行文本的复制
@Test //实验3: 同时使用BufferedReader 和 BufferedWriter 进行文本的复制
public void testBufferedReaderWriter() throws IOException{
File src=new File("D:\\SZS文件夹\\IO\\hello.txt");
File dest=new File("D:\\SZS文件夹\\IO\\BufferedReaderWriter复制的hello.txt");
//①声明②将地址加载进字符流,将字符流加载进缓冲流③read/write④close缓冲流)
FileReader fis= new FileReader(src);
FileWriter fos = new FileWriter(dest); BufferedReader bs=new BufferedReader(fis);
BufferedWriter bw=new BufferedWriter(fos); char[] b=new char[1024];
int len;
while((len=bs.read(b))!= -1) {
bw.write(b,0,len);
}
bw.flush();
bs.close();
bs.close();
}
学习视频地址:http://www.gulixueyuan.com/course/39/task/497/show
最新文章
- Android随笔之——Activity中启动另一应用
- 修复DapperExtension做Insert对象主键为Guid时不能赋值的问题
- 易学PHP——PHP基础知识
- maven常用插件: 打包源码 / 跳过测试 / 单独打包依赖项
- STL中stack小结
- Dan计划:重新定义人生的10000个小时
- Codeforces Round #199 (Div. 2)
- AXURE制作APP抽屉式菜单
- shell编程(一)--常用变量及表达式
- Eucalyptus和Openstack最近版本的改动简单对比
- MySQL的一点浅显知识
- 天气预报demo (ShareREC 官网 MobAPI)
- fiddler学习总结--fiddler抓包篡改数据请求
- tomcat ->; 简介&;部署
- 使用log4jdbc记录SQL信息
- 关于STM32 MDK中USE_STDPERIPH_DRIVER问题的解释
- wxpython 图像编程
- exec命令详解
- SpringSecurity 3.2入门(10)自定义权限控制认证及授权的过程
- linux学习(二)——汤哥的推荐书籍
热门文章
- 数据结构与算法学习(二)——Master公式及其应用
- Python爬取链家二手房源信息
- 搭建sqli靶场
- 【数据库开发】如何创建MySQL数据库连接池(一个基于libmysql的MySQL数据库连接池示例(C/C++版))
- 解决Error: Can't find Python executable ";python";, you can set the PYTHON env variable
- eNSP——配置基于地址池的DHCP
- rest_framework之组件大长今
- python爬虫的入门问题
- Pywinauto使用方法
- python学习-50 pickle模块