package com.cskaoyan.io02.tranfer.reader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
/**
* @author zhangshuai@Cskaoyan.onaliyun.com.
* @version 1.0
* Reader中定义的3个read方法
*
* public int read()
* 读取单个字符
* 返回:
作为整数读取的字符,范围在 0 到 65535 之间 (0x00-0xffff),如果已到达流的末尾,则返回 -1
public int read(char[] cbuf)
将字符读入数组
返回:
读取的字符数,如果已到达流的末尾,则返回 -1
public int read(char[] cbuf,int off ,int len)
将字符读入数组的某一部分
返回:
读取的字符数,如果已到达流的末尾,则返回 -1
*/
public class Demo2 {
public static void main(String[] args) throws IOException {
// 1. 创建字符输入流对象
FileInputStream fos = new FileInputStream("a.txt");
Reader reader = new InputStreamReader(fos);
// 1. 一次读取一个字符
//int readChar;
//
//while ((readChar = reader.read()) != -1) {
// char c = (char) readChar;
// System.out.print(c);
//}
// 2. 一次读取一个字节数组 public int read(char[] cbuf)
//int len; // 记录本次实际读取的字符个数
//char[] charBuf = new char[1024];
//
//while ((len = reader.read(charBuf)) != -1) {
// String s = new String(charBuf, 0, len);
// System.out.println(s);
//}
//
// 3. public int read(char[] cbuf,int off ,int len)
int len; // 记录本次实际读取的字符个数
char[] charBuf = new char[1024];
int offset = 5;
while ((len = reader.read(charBuf, offset, charBuf.length - offset)) != -1) {
String s = new String(charBuf, offset, len);
System.out.println(s);
}
// 关闭流
reader.close();
}
}