JAVA学习第四十八课 — IO流(二):文件的复制 & 缓冲区1
一、复制文本文件
将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();
}
//关闭缓冲区,事实上关闭的就是被缓冲的流对象fw
bw.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方法,将读取到的字符进行缓冲并推断换行标记。将标记前的缓冲数据变成字符串并返回
JAVA学习第四十八课 — IO流(二):文件的复制 & 缓冲区1的更多相关文章
- JAVA学习第四十五课 — 其它对象API(一)System、Runtime、Math类
一.System类 1. static long currentTimeMillis() 返回以毫秒为单位的当前时间. 实际上:当前时间与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫 ...
- JAVA学习第四十六课 — 其它对象API(二)Date类 & Calendar类(重点掌握)
Date类(重点) 开发时,会时常遇见时间显示的情况,所以必须熟练Date的应用 <span style="font-family:KaiTi_GB2312;font-size:18p ...
- NeHe OpenGL教程 第四十八课:轨迹球
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- java基础(十八)IO流(一)
这里有我之前上课总结的一些知识点以及代码大部分是老师讲的笔记 个人认为是非常好的,,也是比较经典的内容,真诚的希望这些对于那些想学习的人有所帮助! 由于代码是分模块的上传非常的不便.也比较多,讲的也是 ...
- JAVA学习第三十六课(经常使用对象API)— Set集合:HashSet集合演示
随着Java学习的深入,感觉大一时搞了一年的ACM,简直是明智之举,Java里非常多数据结构.算法类的东西,理解起来就轻松多了 Set集合下有两大子类开发经常使用 HashSet集合 .TreeSet ...
- Java成长第四集--文本处理IO流
Java IO流在实际业务中使用的频率还是蛮高的,一些业务场景比如,文件的上传和导出,文件的读取等基本都是通过操作IO流来实现的,所以IO流是我们现在学习过程中必须要掌握的技能之一,熟练的使用IO流, ...
- IO流----读取文件,复制文件,追加/插入文件
文件结构 读取文件 第一种方式 public class Test { public static void main(String[] args) throws IOException { // 最 ...
- Java学习笔记(十八)——Java DTO
[前面的话] 在和技术人员的交流中,各种专业术语会出现,每次都是默默的记录下出现的术语,然后再去网上查看是什么意思.最近做项目,需要使用到DTO,然后学习一下吧. 这篇文章是关于Java DTO的,选 ...
- JAVA学习第五十九课 — 网络编程概述
网络模型 OSI(Open System Interconnection)开放系统互连:參考模型 TCP/IP 网络通讯要素 IP地址 port号 传输协议 网络參考模型 七层OSI模型的基本概念要了 ...
随机推荐
- python接口自动化6-重定向(Location)【转载】
本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E ...
- poj 1981(单位圆覆盖最多点问题模板)
Circle and Points Time Limit: 5000MS Memory Limit: 30000K Total Submissions: 7327 Accepted: 2651 ...
- 达梦数据库CAST与ROUND函数
https://blog.csdn.net/zry1266/article/details/50856260
- 牛客小白月赛3 B 躲藏【动态规划/字符串出现cwbc子序列多少次】
链接:https://www.nowcoder.com/acm/contest/87/B来源:牛客网 XHRlyb和她的小伙伴Cwbc在玩捉迷藏游戏 Cwbc藏在多个不区分大小写的字符串中. 好奇的X ...
- Python_Tips[1] -> 利用 Python 的字典实现 Switch 功能
利用 Python 的字典实现 Switch 功能 Python是没有switch语句的,当遇到需要实现switch语句的功能时,一般可以用if/else进行代替,但是还有一种更加简洁的实现方法,利用 ...
- Python与数据库[2] -> 关系对象映射/ORM[5] -> 利用 sqlalchemy 实现关系表查询功能
利用 sqlalchemy 实现关系表查询功能 下面的例子将完成一个通过关系表进行查询的功能,示例中的数据表均在MySQL中建立,建立过程可以使用 SQL 命令或编写 Python 适配器完成. 示例 ...
- HDU 3237 Tree(树链剖分)(线段树区间取反,最大值)
Tree Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 9123 Accepted: 2411 Description ...
- 洛谷 P4212 外太空旅行
题目描述 在人类的触角伸向银河系的边缘之际,普通人上太空旅行已经变得稀松平常了.某理科试验班有n个人,现在班主任要从中选出尽量多的人去参加一次太空旅行活动. 可是n名同学并不是和平相处的.有的人,比如 ...
- hdu 5206 Four Inages Strategy 计算几何
题目链接:HDU - 5206 Young F found a secret record which inherited from ancient times in ancestral home b ...
- extjs grid合并单元格
http://blog.csdn.net/kunoy/article/details/7829395 /** * Kunoy * 合并单元格 * @param {} grid 要合并单元格的grid对 ...