一.字节输入流/输出流
1.字节输入流
构造方法
public FileInputStream(String name)
示例:
FileInputStream fis=new FileInputStream("a.txt");
常用方法
int read()
从输入流中读取数据的下一个字节。
int read(byte[] b)
从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。
1.字节输入流(一次读取一个字节数组)
//模板代码
int by=0
while((by=字节输入流对象.read())!=-1){
System.out.print((char)by);
}
2.字节输入流(一次读取一个字节)
//模板代码
byte[] bys=new byte[];
int len=0;
while((len=字节输入流对象.read(bys))!=-1){
System.out.print(new String(bys,0,len));
}
2.字节输出流
//构造方法
FileOutputStream(File file)
创建一个向指定 File 对象表示的文件中写入数据的文件输出流。
示例:
FileOutputStream fos=new FileOutputStream("a.txt");
public abstract void write(int b):将指定的字节写入到输出流中
public void write(byte[] b):将指定的字节数组写入到输出流中
public void write(byte[] b, int off,int len):将字节数组的一部分写入到输出流中
2.字节缓冲区输入/输出流
缓冲输入/输出流不能直接对文件进行操作
1.字节缓冲输入流
//构造方法
BufferedInputStream(InputStream in)
创建一个 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。
示例:
BufferedInputStream biw=new BufferedInputStream(new FileInputStream("a.txt"));
//常用方法`
void close()
关闭此输入流并释放与该流关联的所有系统资源
int read()
从输入流中读取数据的下一个字节。
int read(byte[] b, int off, int len)
从此字节输入流中给定偏移量处开始将各字节读取到指定的 byte 数组中。
2.字节缓冲输出流
//构造方法
BufferedOutputStream(OutputStream out)
创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
//默认缓冲区大小已经足够大
示例:
BufferedOutputStream bow=new BufferedOutputStream(new FileOutputStream("a.txt"));
//常用方法
void flush()
刷新此缓冲的输出流。
void write(byte[] b, int off, int len)
将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此缓冲的输出流。
void write(int b)
将指定的字节写入此缓冲的输出流。
3.字符输入流/输出流
Java中提供了其子类(便捷类)FileReader
1. 字符输入流=字节输入流+编码格式
public abstract class Reader extends Objectimplements Readable, Closeable
//Reader该类是抽象类,使用其子类InputStreamReader
//构造方法
InputStreamReader(InputStream in)
创建一个使用默认字符集的 InputStreamReader。(平台默认格式GBK)
InputStreamReader(InputStream in, Charset cs)
创建使用给定字符集的 InputStreamReader。
示例:
InputStreamReader isr=new InputStreamReader(new FileInputStream("a.txt"));
便捷类:
FileReader fr=new FileReader("a.txt");
//常用方法
void close()
关闭该流并释放与之关联的所有资源。
int read()
读取单个字符。
int read(char[] cbuf, int offset, int length)
将字符读入数组中的某一部分。
2.字符输出流=字节输出流+编码格式
Java中提供了其子类(便捷类)FileWriter
public abstract class Writer extends Objectimplements Appendable, Closeable, Flushable
//Writer该类是抽象类,使用该类的子类OutputStreamWriter
//构造方法
public OutputStreamWriter(OutputStream out,Charset cs):
创建一字符输出转换流对象,指定编码格式
示例:
OutputStreamWriter bsw=new OutputStreamWriter(new FileOutputStream("a.tat"));
便捷类:
FileWriter fw=new FileWriter("a.txt");
//常用方法
void close()
关闭此流,但要先刷新它。
void flush()
刷新该流的缓冲。
void write(char[] cbuf, int off, int len)
写入字符数组的某一部分。
void write(int c)
写入单个字符。
4.字符缓冲区输入/输出流
1.输入流
//构造方法
BufferedReader(Reader in)
创建一个使用默认大小输入缓冲区的缓冲字符输入流。
示例:
BufferedReader br=new BufferedReader(new FileReader("a.txt"));
//常用方法
int read()
读取单个字符。
int read(char[] cbuf, int off, int len)
将字符读入数组的某一部分。
String readLine()
读取一个文本行。
void close()
关闭该流并释放与之关联的所有资源。
模板代码:
String line-null;
while((line=字符缓冲输入流对象.read()!=null){
System.out.println(line);
}
2.输出流
//构造方法
BufferedWriter(Writer out)
创建一个使用默认大小输出缓冲区的缓冲字符输出流。
示例:
BufferedWriter bw= new BufferedWriter(new FileWriter("a.txt"));
//常用方法
void close()
关闭此流,但要先刷新它。
void flush()
刷新该流的缓冲。
void newLine()
写入一个行分隔符。
void write(char[] cbuf, int off, int len)
写入字符数组的某一部分。
void write(int c)
写入单个字符。
void write(String s, int off, int len)
写入字符串的某一部分。