Java基础 FileReader-FileWriter / 缓冲字符输入输出流 / 缓冲字节输入输出流 三种方式 进行文本文件的复制
易错的地方:
- /** 出错的地方:
- * 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
Java基础 FileReader-FileWriter / 缓冲字符输入输出流 / 缓冲字节输入输出流 三种方式 进行文本文件的复制的更多相关文章
- Java 7源码分析第13篇 - 字节输入输出流(1)
上一篇介绍了关于字节输入输出流的Java类框架,同时也简单介绍了一下各个类的作用,下面就来具体看一下这些类是怎么实现这些功能的. 1.InputStream和OutputStream InputStr ...
- Java基础知识强化之IO流笔记30:字节流4种方式复制mp4并测试效率
1. 需求:把e:\\哥有老婆.mp4 复制到当前项目目录下的copy.mp4中 字节流四种方式复制文件: • 基本字节流一次读写一个字节 • 基本字节流一次读写一个字节数组 • 高效字节流一次读写一 ...
- Java中从控制台输入的三种方式
我们最熟悉的从控制台读取一个字符或者一个字符串都知道用Scanner,那么除了Scanner还有没有其他的呢,答案是有的,我们来看看. System.in.read() System.in.read( ...
- django基础之day09,多对多创建数据表的三种方式
多对多三种创建方式 1.全自动(用在表关系不复杂的一般情况) class Book(models.Model): title=models.CharField(max_length=32) 多对多关系 ...
- Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)
Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符缓冲流 字符缓冲流根据流的 ...
- Java修炼——文件字节输入输出流复制和缓冲流复制
一:文件字节输入输出流复制 首先明确数据源和目的文件,然后就是"中转站",最后就是关闭 package com.bjsxt.ioproject; import java.io.Fi ...
- java学习笔记IO之字节输入输出流
IO字节输入输出流 OutputStream:字节输出流 该抽象类是所有字节输出流的超类: 定义了一些共性的成员方法: 1.写入一个字节 void write(int b);//b表示字节 2.写入字 ...
- Java基础知识强化之IO流笔记62:三种方式实现键盘录入
1. 三种方式实现键盘录入 System.in 标准输入流.是从键盘获取数据的 键盘录入数据三种方式: A:main方法的args接收参数. java HelloWorld hello w ...
- java: InputStreamReader将字节的输入流变成字符的输入流,OutputStreamWriter将字符的输出流变成字节的输出流
InputStreamReader:将字节的输入流变成字符的输入流, OutputStreamWriter:将字符的输出流变成字节的输出流 //将缓冲区的内容读取,可以一次读取 //可以接收键盘的输入 ...
随机推荐
- 物联网防火墙himqtt源码之MQTT协议分析
物联网防火墙himqtt源码之MQTT协议分析 himqtt是首款完整源码的高性能MQTT物联网防火墙 - MQTT Application FireWall,C语言编写,采用epoll模式支持数十万 ...
- linux centos7 开启 mysql 3306 端口 外网访问 的实践
第〇步:思路 3306 端口能否被外网访问,主要要考虑: (1)mysql的3306 端口是否开启?是否没有更改端口号? (2)mysql 是否允许3306 被外网访问? (3)linux 是否已经开 ...
- hdu 1106
排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...
- docker安装详细步骤-centos7
https://www.runoob.com/docker/centos-docker-install.html 一.安装docker 1.Docker 要求 CentOS 系统的内核版本高于 3.1 ...
- hdoj3336(kmp算法next数组的应用)
题目链接:https://vjudge.net/problem/HDU-3336 题意:给定长为n(<=2e5)的字符串s,求s的每个前缀在s中出现的次数之和. 思路: 用dp[i]表示以s[i ...
- Appium 基于控件左滑操作
def swipe_ele_left(self, ele, dur=800): """ 基于控件元素左滑操作 :param ele: 控件元素 :param dur: 在 ...
- java日志框架系列(5):logback框架appender详解
1.appender 1.什么是appender Appender 是负责写记录事件的组件. Appender 必须实现接口“ch.qos.logback.core.Appender”.该接口的重要方 ...
- python笔记005-字符串-列表-元组
目录 1 上次作业补充拓展... 1 1.1 进制转换... 1 1.2 类型判断... 1 2 今日学习内容... 2 2.1 格式化输出... 2 2.2 基本运算符... 2 2.2.1 算术运 ...
- c语言 运算器
#include<stdio.h> #include<stdbool.h> void menu(){ printf("************************ ...
- nginx 设置开机启动
设置nginx开机启动chkconfig --add /etc/init.d/nginx chkconfig nginx on