java 21 - 3 字符输入流

所谓的输入流,就是读取文件中的数据

同样的,字符输入流InputStreamReader

4个构造方法,不过2个比较常用:

构造方法: 

A:InputStreamReader(InputStream is):用默认的编码读取数据
B:InputStreamReader(InputStream is,String charsetName):用指定的编码读取数据

A:InputStreamReader(InputStream is):用默认的编码读取数据

InputStreamReader isr = new InputStreamReader(new FileInputStream(
		 "a.txt"));

  

B:InputStreamReader(InputStream is,String charsetName):用指定的编码读取数据

1 InputStreamReader isr = new InputStreamReader(new FileInputStream(
2                 "osw.txt"), "UTF-8");

InputStreamReader的方法:

A* int read():一次读取一个字符
B* int read(char[] chs):一次读取一个字符数组

A* int read():一次读取一个字符

1         int ch = 0;
2         while ((ch = isr.read()) != -1) {
3             System.out.print((char) ch);
4         }
5
6         // 释放资源
7         isr.close();

B* int read(char[] chs):一次读取一个字符数组

1         char[] chs = new char[1024];
2         int len = 0;
3         while ((len = isr.read(chs)) != -1) {
4             System.out.print(new String(chs, 0, len));
5         }
6
7         // 释放资源
8         isr.close();
时间: 2024-12-29 23:55:56

java 21 - 3 字符输入流的相关文章

java 21 - 4 字符流的文件复制操作以及简化

既然字节流可以复制文件,那么字符流当然也有. 同样的思路: 数据源: a.txt -- 读取数据 -- 字符转换流 -- InputStreamReader目的地: b.txt -- 写出数据 -- 字符转换流 -- OutputStreamWriter 1 // 封装数据源 2 InputStreamReader isr = new InputStreamReader(new FileInputStream( 3 "a.txt")); 4 // 封装目的地 5 OutputStrea

java 21 - 6 字符缓冲流的特殊方法以及该方法高效复制文件

字符缓冲流的特殊方法: A.BufferedWriter: public void newLine():根据系统来决定换行符 1 private static void write() throws IOException { 2 //创建字符输出缓冲流 3 BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt")); 4 for(int x = 0;x < 10 ; x++){ 5 bw.write(&quo

java 21 - 2 字符输出流

字符输出流:OutputStreamWriter 构造方法:一共4个,说2个常用的 A:OutputStreamWriter(OutputStream out):根据默认编码把字节流的数据转换为字符流(eclise默认的是GBK编码表) B:OutputStreamWriter(OutputStream out,String charsetName):根据指定编码把字节流数据转换为字符流 A:OutputStreamWriter(OutputStream out):根据默认编码把字节流的数据转换

【IO流】25 - 字符流 - 字符输出流的缓冲流以及字符输入流的缓冲流BufferedWriter和BufferedReader

package cn.itcast.demo2; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; /* * 字符输出流缓冲区流 * java.io.BufferedWriter 继承 Writer * 写入方法 write () 单个字符,字符数组,字符串 * * 构造方法: * BufferedWriter(Writer w)传递任意字符输出流 * 传递谁,就高效谁 *

Java:字节流和字符流(输入流和输出流)

本文内容: 什么是流 字节流 字符流 首发日期:2018-07-24 什么是流 流是个抽象的概念,是对输入输出设备的抽象,输入流可以看作一个输入通道,输出流可以看作一个输出通道. 输入流是相对程序而言的,外部传入数据给程序需要借助输入流. 输出流是相对程序而言的,程序把数据传输到外部需要借助输出流. 什么是字节流? 字节流--传输过程中,传输数据的最基本单位是字节的流. 什么是字符流? 字符流--传输过程中,传输数据的最基本单位是字符的流. 字符编码方式不同,有时候一个字符使用的字节数也不一样,

java 21 - 10 文本文件和集合之间互相存储数据

有时候,我们会遇到单独写入数据到文本文件的情况.比如: 需求:把ArrayList集合中的字符串数据存储到文本文件 分析: A:ArrayList集合中存储的是String类 B:要存储的文件是文本文件,所以用字符流,为了快速,用缓冲字符流A 数据源: ArrayList<String>  -----  遍历集合,得到数据   目的地: c.txt  ------  FileWriter  ------ BufferedWriter 1 public static void main(Stri

Java IO5:字符流

字符流 字节流提供了处理任何类型输入/输出操作的功能(因为对于计算机而言,一切都是0和1,只需把数据以字节形式表示就够了),但它们不可以直接操作Unicode字符,因为上一篇文章写了,一个Unicode字符占用2个字节,而字节流一次只能操作一个字节.既然Java的口号就是"一次编写.处处运行",那么包含直接的字符输入/输出的支持是必要的.因此就有一些字符输入/输出流,之前已经说明过了,字符流顶层是Reader和Writer这两个抽象类,因此就从这里开始本文. Reader Reader

Java IO4:字符编码

前言 字符编码,这本不属于IO的内容,但字节流之后写的应该是字符流,既然是字符流, 那就涉及一个"字符编码的"问题,考虑到字符编码不仅仅是在IO这块,Java中很多场景都涉及到这个概念,因此这边文章就专门详细写一下字符编码,具体 的网上有很多,但本文目的是尽量讲清楚各种编码方式的作用,个人认为,不求.也没有必要对字符编码理解地多么深入. 字符集和字符编码 第一个概念就是字符集和字符编码之间的区别: 1.字符集(charset) 字符集指的是一个系统支持的所有抽象字符的集合.字符是各种文

字符输入流读取文本文件【Reader、FileReader、BufferedReader 】

字符输入流读取文本文件 1.Reader类(读取字符流的抽象类) ※Reader类的常用方法 方法名称 说明 int read() 从输入流中读取单个字符 int read(byte[] c) 从输入流中读取c .length长度的字符,保存到字节数组c中,返回实际读取的字符数 int read(byte[] c, int off , int len) 从输入流中读取最多len长度的字节,保存到字节数组c中,保存的位置从off开始,返回实际读取的字符数 void close() 关闭流 2.字符