IO流之字符流知识总结
字符流:读写字符的
顶级父类是Reader和Writer
操作流程
在Java中IO操作也是有相应步骤的,以文件操作为例,主要的操作流程如下:
- 使用File类打开一个文件
- 通过字节流或字符流的子类,指定输出的位置
- 进行读/写操作
- 关闭输入/输出
思维导图

相关练习代码。
/**
* Date : 2017/7/1
* Author : Hsj
* Description :字符流知识总结
*/
public class Demo2 { //可以读取字符
@Test
public void fun() throws IOException {
FileReader fr = new FileReader("zzz.txt");
int read = fr.read();
System.out.println(read);
char c = (char) read;
System.out.println(c);
fr.close();
} //连续读取文字
@Test
public void fun2() throws IOException {
FileReader fr = new FileReader("zzz.txt");
int len;
while ((len = fr.read()) != -1) {
System.out.print((char) len);
}
fr.close();
} //文字写入
@Test
public void fun3() throws IOException {
FileWriter fw = new FileWriter("kk.txt");
fw.write("我是胡少君,你在哪里");
fw.close();
} //字符拷贝
@Test
public void fun4() throws IOException {
FileReader fr = new FileReader("kk.txt");
FileWriter fw = new FileWriter("xxx.txt");
int len;
while ((len = fr.read()) != -1) {
fw.write(len);
}
fr.close();
fw.close();//有一个小的缓冲区不关流写不进去
} //自定义数组的拷贝
@Test
public void fun5() throws IOException {
FileReader fr = new FileReader("kk.txt");
FileWriter fw = new FileWriter("kj.txt");
char[] chars = new char[1024 * 8];
int len;
while ((len = fr.read(chars)) != -1) {
fw.write(chars, 0, len);
}
fr.close();
fw.close(); } @Test
//缓冲字符流
public void fun6() throws IOException {
BufferedReader br = new BufferedReader(new FileReader("kj.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("hsj.txt"));
int len;
while ((len = br.read()) != -1) {
bw.write(len);
}
br.close();
bw.close();
} //读取一行
@Test
public void fun7() throws IOException {
BufferedReader br = new BufferedReader(new FileReader("hsj.txt"));
String s;
while ((s = br.readLine()) != null) {//一行一行的读取文件
System.out.print(s);
}
br.close();
} //添加换行符
@Test
public void fun8() throws IOException {
BufferedReader br = new BufferedReader(new FileReader("hsj.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("lyb.txt"));
String s;
while ((s = br.readLine()) != null) {
bw.write(s);
bw.newLine();//换行
}
br.close();
bw.close(); } //文本反转
@Test
public void fun9() throws IOException {
List<String> slist = new ArrayList<>();
BufferedReader br = new BufferedReader(new FileReader("hsj.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("tran.txt"));
String s;
while ((s = br.readLine()) != null) {
slist.add(s);
} for (int i = slist.size() - 1; i >= 0; i--) {
bw.write(slist.get(i));
bw.newLine();
}
bw.close();
br.close();
} // LineNumberReader的使用
@Test
public void fun10() throws IOException {
LineNumberReader lnr = new LineNumberReader(new FileReader("hsj.txt"));
String line;
while ((line = lnr.readLine()) != null) {
System.out.println(lnr.getLineNumber() + ":" + line); }
lnr.close();
}
}
IO流之字符流知识总结的更多相关文章
- 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包中.流按照操作数据不同分为两种,字节流和字符流.流按照流向分为输入流,输出流. 输入输出的“入”和“出”是相当于内存来 ...
随机推荐
- 贝叶斯来理解高斯混合模型GMM
最近学习基础算法<统计学习方法>,看到利用EM算法估计高斯混合模型(GMM)的时候,发现利用贝叶斯的来理解高斯混合模型的应用其实非常合适. 首先,假设对于贝叶斯比较熟悉,对高斯分布也熟悉. ...
- 一个js的动画,以前以为只有flash可以实现
11年刚干这行的时候,看到这种什么百叶窗的动画,以为都是flash实现的,最近突然灵光一闪,想到了用js实现(虽然我不是做前端的,本人做.net).代码虽然实现了,但是比较乱,先上个图: 代码主要就是 ...
- 爬虫新手学习2-爬虫进阶(urllib和urllib2 的区别、url转码、爬虫GET提交实例、批量爬取贴吧数据、fidder软件安装、有道翻译POST实例、豆瓣ajax数据获取)
1.urllib和urllib2区别实例 urllib和urllib2都是接受URL请求相关模块,但是提供了不同的功能,两个最显著的不同如下: urllib可以接受URL,不能创建设置headers的 ...
- ElasticSearch和ElasticSearch Head环境搭建和数据模拟
首先elasticsearch-6.0.0\bin目录下运行elasticsearch服务 修改elasticsearch-6.0.0\elasticsearch.yml文件 在文件最后加入下面代码, ...
- TP3.2.3 接入银联支付
TP3.2.3 接入银联支付 项目接入银联支付的过程, 在此记录下,希望能帮助开发盆友平坑. 银联SKD链接:https://open.unionpay.com/ajweb/product/newPr ...
- 自学Zabbix3.5-监控项item
itemItems是从主机里面获取的所有数据.通常情况下item为监控项,一般网络设备.服务器加入了zabbix监控,就需要监控它的cpu负载,那么实现这个方法的东西就叫item. 1. item构成 ...
- presto
presto中文站:http://prestodb-china.com/ 进入hadoop机器,进入presto所在bin目录:presto --server localhost:9090 --cat ...
- 用Inferno代替React开发高性能响应式WEB应用
什么是Inferno Inferno可以看做是React的另一个精简.高性能实现.它的使用方式跟React基本相同,无论是JSX语法.组件的建立.组件的生命周期,还是与Redux或Mobx的配合.路由 ...
- this的理解
this的理解 看了阮一峰的this讲解,下面是我的理解: 总结来说 this指向 调用this所在方法 的对象: 普通函数 例子1 function test(){ this.x = 1; cons ...
- Python 安装包的导入
1.安装适合的pip python安装pip的命令: python -m pip install --upgrade pip安装Python包,的确是pip最为方便了,简单快捷,因为它直接是从pypi ...