输入流 java.io.Reader
BufferReader
主要是使用readLine()方法;用BuferReader来包装输出;增加读取或写入的速度;这里是增加写入的速度
贯穿了File InputStream InputStreamReader三个类的使用
功能: 字符输入中缓存文本
步骤:
1. File file=new File(“要读取的文本.txt”);//字符流一般读取文档
2. InputStream ips=new InputStream(file);//从文件中读取字节流
3. Reader reader =new InputStreamReader(ips);//将字节流读入到字符流reader中
4. BufferedReader buffer =new BufferReader(reader);//把字符流存到缓存区
5. 输出到控制台;一般都是把内存中的内容输出到控制集台。
package 字符流;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
//从字符输入流缓存文本
//效率高
/*
*
*
*
* */
public class BufferReaderTest {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//构造中放字符流
File file =new File("ojbk.txt");
file.createNewFile();
InputStream ips =new FileInputStream(file);
Reader reader=new InputStreamReader(ips);
BufferedReader buffer=new BufferedReader(reader);
String ss=buffer.readLine();//为了增加读取效率 依次读取一行 最后一行是
System.out.println(ss);
String str=null;
while((str=buffer.readLine())!=null) {
System.out.println(str);
}
buffer.close();
/*read()
* close
* read(char[] c, int offaet, int len)
* readLine()
* */
}
//应用场景’、
/*
* 字节流一般读取多媒体文件 MP3 MP4 JpG 因为都是二进制存储
* 字符流 一般读取的是文本
*
*
* */
}
InputStreamReader
package 字符流;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
//是字节和字符的桥
//读取字节 转为字符 并指定字符集解码
/*
* 包装字节流 称字符
*
* */
public class InputStreamReaderTest {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
File file =new File("笔记");
InputStream ips=new FileInputStream(file);
InputStreamReader reader=new InputStreamReader(ips);
int a=0;
while((a=reader.read())!=-1) {
System.out.println((char)a);
}
/*
* reader.getEncoding();
*
* */
}
}
FileReader
FileInputStreamReader的子类
顺序:
1.java.io.Reader
2.java.io.InputStreamReader
3.java.io.FileReader
package 字符流;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
//用于都文本
//可以直接串文件
public class FileReaderTest {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
File file =new File("笔记");
InputStreamReader reader=new FileReader(file);
//bixu包装才能用readLine()
BufferedReader br =new BufferedReader(reader);
//这个减少了两个对象的创建 直接将文件转化为字符 少了字节掉文件的几步
}
}
CharArrayReader
读取char数组以字符流的形式读入到内存中
package 字符流;
import java.io.CharArrayReader;
import java.io.IOException;
import java.io.Reader;
public class CharArrayTest {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String str ="HelloWolrd";
char [] buf=str.toCharArray();
Reader reader =new CharArrayReader(buf);//字符串缓存区 可做字符输入流 buf存储到 reader中 Reader是父类
int read=reader.read();
int a=0;
while((a=reader.read())!=-1) {
System.out.println((char)a);
}
char cc [] =new char[buf.length];//创建一个新数组
int reads=reader.read(cc, 0, buf.length);//饭hi中类型是int 及读取的个数 没啥用
reader.close();
}
}
博客主要介绍了Java输入流java.io.Reader,包括BufferReader、InputStreamReader、FileReader和CharArrayReader。详细说明了BufferReader贯穿File、InputStream、InputStreamReader三个类的使用步骤,还提及InputStreamReader的顺序及FileReader是其子类,以及CharArrayReader将char数组以字符流读入内存。
6216

被折叠的 条评论
为什么被折叠?



