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包中.流按照操作数据不同分为两种,字节流和字符流.流按照流向分为输入流,输出流. 输入输出的“入”和“出”是相当于内存来 ...
随机推荐
- 基本MarkDown语法
引言 字符串作为一种常见的数据类型,在日常中我们面临各式各样的字符串处理问题,那么,这就要求我们必须掌握一些常用的字符串处理函数.本文尽量囊括常用的字符串处理函数,此文也作为个人的小总结. Pytho ...
- nginx利用反向代理调试后台接口
1.location 支持配置项目的绝对路径 2.假设我们的后台API地址是以API开头,location ^~ /api/ 代表nginx将会拦截请求地址中包含"/api/"字样 ...
- 异步编程Async/await关键字
异步编程Async \await 关键字在各编程语言中的发展(出现)纪实. 时间 语言版本 2012.08.15 C#5.0(VS2012) 2015.09.13 Python 3.5 2016.03 ...
- 逐步搭建Lamp环境之Linux的运行模式
首先先来看几个概念,分别是:单用户.单任务.多用户.多任务 单用户: 是指操作系统一般只能由一个人同时进行登录 单任务: 是指操作系统只能同时处理一个任务 多用户: 是指操作系统可以允许由多个用户同时 ...
- textarea高度自适应,随着内容增加高度增加
$(function(){ $.fn.autoHeight = function(){ function autoHeight(elem){ ...
- python中namedtuple介绍
namedtuple:namedtuple类位于collections模块,有了namedtuple后通过属性访问数据能够让我们的代码更加的直观更好维护.namedtuple能够用来创建类似于元祖的数 ...
- Python爬虫(八)_Requests的使用
Requests:让HTTP服务人类 虽然Python的标准库中urllib2模块中已经包含了平常我们使用的大多数功能,但是它的API使用起来让人感觉不太好,而Requests自称"HTTP ...
- Python爬虫(九)_非结构化数据与结构化数据
爬虫的一个重要步骤就是页面解析与数据提取.更多内容请参考:Python学习指南 页面解析与数据提取 实际上爬虫一共就四个主要步骤: 定(要知道你准备在哪个范围或者网站去搜索) 爬(将所有的网站的内容全 ...
- CSS clear 清除浮动,兼容各浏览器
.clear:after{content:".";display:block;height:0;clear:both;visibility:hidden;} .clear{zoom ...
- 最全Pycharm教程(28)——Pycharm搜索导航之搜索应用实例
1.主题 这里我们将介绍Pycharm另外一项强力的搜索导航功能.如果你希望知道某个特定的类或方法都在project中的哪些地方发挥了作用.也就是找出其全部的usages,这将是一个很巨大而繁琐的pr ...