IO流(4)—字符流
1.IO体系:
- 抽象基类 ——节点流(文件流)
- InputStream —— FileInputStream
- OutputStream ——FileOutputSteam
- Reader ——FileReader
- Writer ——FileWriter
2.分类:
- 按操作数据单位不同:字节流(8bit)主要处理除了文本文件以外的问文件、字符流(16bit)主要处理文本文件
- 按数据流的流向不同:输入流、输出流
- 按流的角色不同:节点流(直接作用于文件的:FileInputStream、FileOutputSteam、FileReader、FileWriter)、
处理流(除了以上四个之外都是)
这里介绍字符流:
- FileReader和FileWriter的使用
- 主要用于处理文本文件,非文本文件使用字节流
3代码实例:
public class FileReaderWriter {
//执行以下方法,计算使用FileReader和FileWriter传输文件使用的时间
@Test
public void testCopyFile(){
long start = System.currentTimeMillis();
String src = "file/hello.txt";
String dest = "file/hello4.txt";
testFileWriter(src,dest);
long end = System.currentTimeMillis();
System.out.println("花费时间:"+(end - start));//花费时间为1毫秒
}
//读取一个文本文件,然后写入到另一个文本文件中
//@Test
public void testFileWriter(String str1,String str2){
//1.定义两个File类对象
File src = new File(str1);
File dest = new File(str2);
//2.定义字符流
FileReader fr = null;
FileWriter fw = null;
try {
fr = new FileReader(src);
fw = new FileWriter(dest);
char[] c = new char[24];
int len;//用于记录每次读取字符的数量,
//3.读取字符到数组中
while((len = fr.read(c)) != -1){
//4.写入到文本文件中,此时字符存在数组c当中,循环一次读取24个字符
fw.write(c,0,len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fw != null){
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fr != null){
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//读取一个文本文件到控制台
@Test
public void testFileReader(){
//1.定义字符流对象
FileReader fr = null;
try {
//2.定义文件对象
File file = new File("file/hello.doc");
fr = null;
fr = new FileReader(file);
char[] c = new char[24];
int len;
//3.把文件中的字符读入到字符数组中去
while((len = fr.read(c)) != -1){
//4.把字符数组转成字符串
String str = new String(c,0,len);
System.out.print(str);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if(fr != null){
try {
fr.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
IO流(4)—字符流的更多相关文章
- java IO流 之 字符流
字符是我们能读懂的一些文字和符号,但在计算机中存储的却是我们看不懂的byte 字节,那这就存在关于字符编码解码的问题.所以在学习Io流的字符流前我们先了解些关于编码问题. 一.字符集与字符编码 1.什 ...
- JAVA IO 字节流与字符流
文章出自:听云博客 题主将以三个章节的篇幅来讲解JAVA IO的内容 . 第一节JAVA IO包的框架体系和源码分析,第二节,序列化反序列化和IO的设计模块,第三节异步IO. 本文是第一节. ...
- java io流(字符流) 文件打开、读取文件、关闭文件
java io流(字符流) 文件打开 读取文件 关闭文件 //打开文件 //读取文件内容 //关闭文件 import java.io.*; public class Index{ public sta ...
- io系列之字符流
java中io流系统庞大,知识点众多,作为小白通过五天的视频书籍学习后,总结了io系列的随笔,以便将来复习查看. 本篇为此系列随笔的第一篇:io系列之字符流. IO流 :对数据的传输流向进行操作,ja ...
- Java IO 字节流与字符流 (五)
Java的IO流分为字符流(Reader,Writer)和字节流(InputStream,OutputStream),字节流顾名思义字节流就是将文件的内容读取到字节数组,然后再输出到另一个文件中.而字 ...
- JAVA之IO流(字符流)
字符流InputStreamReader和OutputStreamWriter是Writer和Read的子类:是字节流通向字符流的桥梁,也就是可以把字节流转化为字符流. InputStreamRead ...
- (19)IO流之字符流FileReader和FileWriter,缓冲字符流---缓冲输入字符流BufferedReader和缓冲输出字符流BufferedWriter
字符流,读取的文件是字符的时候,有两个基类一个是Reader,一个是Writer这有点拟人的感觉,人直接看懂的是文字 字符流 字节流:读取的是文件中的二进制字节流并不会帮你转换成看的懂得字符 字符流: ...
- JAVA之旅(二十四)——I/O流,字符流,FileWriter,IOException,文件续写,FileReader,小练习
JAVA之旅(二十四)--I/O流,字符流,FileWriter,IOException,文件续写,FileReader,小练习 JAVA之旅林林总总也是写了二十多篇了,我们今天终于是接触到了I/O了 ...
- 【JAVA IO流之字符流】
一.概述. java对数据的操作是通过流的方式.java用于操作流的对象都在IO包中.流按照操作数据不同分为两种,字节流和字符流.流按照流向分为输入流,输出流. 输入输出的“入”和“出”是相当于内存来 ...
- Java:IO流之字符流缓冲区详解
字符流缓冲区: 1.缓冲区的出现提高了对数据的读写效率: 2.对应类:BufferedWriter.BufferedReader: 3.缓冲区要结合流才可以使用: 4.在流的基础上对流的功能进行了增强 ...
随机推荐
- C++类中的静态成员变量和静态成员函数的作用
数据成员可以分为静态变量.非静态变量两种. 静态成员:静态类中的成员加入static 修饰符,即是静态成员,可以使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配 ...
- cookie实现刷新不变化树形菜单
通过设置cookie来保存树形菜单的状态,在页面加载时重新读取cookie来设置菜单. 菜单的HTML结构: <div class="treemenu"> <ul ...
- gcc make 与cmake
1. gcc (1)是什么? 它是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器.它可以编译很多种编程语言(括C.C++.Objective-C.For ...
- maven私服nexus(三)
将项目中的第三方jar包上传至maven私服中 上传jar包到maven私服 在你使用的maven配置文件settings中加上如下信息 代表你访问的账号密码 <servers> < ...
- maven pom.xml(公司版)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- MySQL高级02
索引简介 索引(Index)是帮助MySQL高效获取数据的数据结构.可以得到索引的本质:索引是数据结构.你可以简单理解为“排好序的快速查找数据结构”. 在数据之外,数据库系统还维护着满足特定查找算法的 ...
- POJ 2155 Matrix 【二维树状数组】(二维单点查询经典题)
<题目链接> 题目大意: 给出一个初始值全为0的矩阵,对其进行两个操作. 1.给出一个子矩阵的左上角和右上角坐标,这两个坐标所代表的矩阵内0变成1,1变成0. 2.查询某个坐标的点的值. ...
- HDU 4687 Boke and Tsukkomi (一般图最大匹配)【带花树】
<题目链接> 题目大意: 给你n个点和m条边,每条边代表两点具有匹配关系,问你有多少对匹配是冗余的. 解题分析: 所谓不冗余,自然就是这对匹配关系处于最大匹配中,即该匹配关系有意义.那怎样 ...
- 二叉搜索树的java实现
转载请注明出处 一.概念 二叉搜索树也成二叉排序树,它有这么一个特点,某个节点,若其有两个子节点,则一定满足,左子节点值一定小于该节点值,右子节点值一定大于该节点值,对于非基本类型的比较,可以实现Co ...
- AM335X启动(转)
AM335x启动 参考文件: 1.TI.Reference_Manual_1.pdf http://pan.baidu.com/s/1c1BJNtm 2.TI_AM335X.pdf http:// ...