JAVA学习第四十八课 — IO流(二):文件的复制 & 缓冲区1
来源:互联网 发布:游民星空mac游戏 编辑:程序博客网 时间:2024/04/30 10:55
一、复制文本文件
将G盘的文本文件复制到D盘上
也就是 读取G盘中文本文件的数据,写入D盘中->连读带写
而剪切呢,就是连读带写后,删除原盘的文件
<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class Main {public static void main(String[] args) throws IOException {FileReader fr = null;FileWriter fw = null;try {fr = new FileReader("G盘.txt");fw = new FileWriter("D:\\ACM.txt");char[] ch = new char[1024];//缓存读取的数据int t ;while((t = fr.read(ch))!=-1){fw.write(ch,0,t);}} catch (Exception e) {System.out.println("读写失败");}finally{if(fw!=null){try {fw.close();} catch (Exception e2) {throw new RuntimeException();}}if(fr!=null){try {fr.close();} catch (Exception e2) {throw new RuntimeException();}}}}}</strong></span>
一个文件如果正在使用,是不能被删除的,所以注意要将这两个动作关联起来
二、字符流的缓冲区
实际上,上面的char[]数组就是一个缓冲区,缓冲区的出现提高了对数据的读取效率
BufferedWriter类、BufferedReader类
前提:缓冲区必须结合流才能使用
作用:在流的基础上对流的功能进行了增强
BufferWriter类演示
将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。
特有方法:newLine()<span style="font-family:KaiTi_GB2312;font-size:18px;">import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;public class Main {public static void main(String[] args) throws IOException {FileWriter fw = new FileWriter("ACM.txt");//创建一个字符写入流的缓冲区对象,并和指定要被缓冲的流对象相关联 BufferedWriter bw = new BufferedWriter(fw);//使用缓冲去的方法,将数据写入到缓冲区中bw.write("ACM。。。。");bw.newLine();//实际上 System.getproperty("line.separator");bw.write("acm");//在用缓冲去的刷新方法,将数据写入目的地bw.newLine();bw.flush();for(int i = 0;i<5;i++){bw.write("1111");bw.newLine();bw.flush();}//关闭缓冲区,其实关闭的就是被缓冲的流对象fwbw.close();}}</span>
BufferedReader类演示
从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
特有方法:readLine()
<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;public class Main {public static void main(String[] args) throws IOException {FileReader fr = new FileReader("ACM.txt");BufferedReader br = new BufferedReader(fr);String str = null;while((str = br.readLine())!= null){System.out.println(str);}br.close();}}</strong></span>
注意:
readLine()方法:使用了读取缓冲区的read方法,将读取到的字符进行缓冲并判断换行标记,将标记前的缓冲数据变成字符串并返回
0 0
- JAVA学习第四十八课 — IO流(二):文件的复制 & 缓冲区1
- Java IO学习【8】利用缓冲区进行文件的复制
- JAVA学习第四十九课 — IO流(三):缓冲区2 & 装饰设计模式
- JAVA IO使用高速缓冲区的字节流复制文件
- JAVA之旅(二十五)——文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine
- java IO流(二)文件的复制
- JAVA学习第四十七课 — IO流(一):文件的读写
- 黑马程序员——IO流的复制文件方法(含缓冲区方法)
- java IO操作(二)---字符流的缓冲区
- Java基础知识之文件操作(二)——IO流复制文件
- java io 缓冲区 MP3复制
- IO操作 通过缓冲区复制一个.java文件
- java IO 二(字符流缓冲区)
- Java NIO中的缓冲区Buffer(二)创建-复制缓冲区
- Java NIO中的缓冲区Buffer(二)创建-复制缓冲区
- Java NIO中的缓冲区Buffer(二)创建-复制缓冲区
- Java NIO中的缓冲区Buffer(二)创建-复制缓冲区
- Java的IO流复制文件
- openfire Android 安装与配置(二)
- STM32 FreeRTOS 关键API功能简介(1)
- 类与继承
- HTTP 返回代码表
- 可恶的CS0433
- JAVA学习第四十八课 — IO流(二):文件的复制 & 缓冲区1
- 小知识点(四)spring向action中注入service
- LESSON: Store Fast Changing Business Data in Memory
- 第九周项目6-穷举法之谁是小偷
- 粒子系统的学习
- fasdfa
- Axis——环境部署,发布,
- 异常积累(一)createQuery is not valid without active transaction
- 逻辑斯蒂有限增长模型