Reader的基本方法
int read() throws IOException
//读取一个字符并以整数的形式返回(0~255),如果返回-1已到输入流的末尾 int read(char[] cbuf) throws IOException
//读取一系列字符并存储到一个数组buffer,返回实际读取的字符数,如果读取前已到输入流的末尾返回-1
int read(char[] cbuf,int offset,int length) throws IOException
//读取length个字符,并存储到一个数组buffer,从offset位置开始,返回实际读取的字符数,如果读取前已到输入流的末尾返回-1 void close() throws IOException //关闭流释放内存资源
long slip(long n) throws IOException
//跳过n个字符不读,返回实际跳过的字符数
Write
继承自Write的流都是用于程序中输出数据,且数据的单位为字符(16bit);下图中深色的为节点流,浅色的为处理流
BufferedWriter
CharArrayWriter
OutputStreamWriter FileWriter
Write FilterWriter
PipedWriter
StringWriter
FilterWriter
Write的基本方法
void write(int c) throws IOException
//向输出流中写入一个字符数据,该字符数据为参数c的低16位 void wrie(char[] cbuf) throws IOException //将一个字符类型的数组中的数据写入输出流
void write(char[] cbuf,int offset,int length) throws IOException
//将一个字符类型的数组中的从指定位置(offset)开始的length个字符写入到输出流
void write(String string) throws IOException //将一个字符串中的字符写入到输出流
void write(String string,int offset,iint length) throws IOException //将一个字符串从offset开始的length个字符写入到输出流 void close() throws IOException //关闭流释放内存资源
void flush() throws IOException
//将输出流中缓冲的数据全部写出到目的地
节点流类型 类型 字符流 字节流 File(文件) FileReader FileInputStream FileWriter FileOutputStream Memory Array CharArrayReader ByteArrayInputStream CharArrayWriter ByteArrayOutputStream Memory String StringReader - StringWriter Pipe(管道) PipedReader PipedInputStream PipedWriter PipedOutputStream 访问文件 FileInputStream和FileOutputStream分别继承自InputStream和OutputStream,用于向文件中输入和输出字节
FileInputStream和FileOutputStream的常用构造方法:
FileInputStream(String name) throws FileNotFoundException FileInputStream(File file) throws FileNotFoundException FileOutputStream(String name) throws FileNotFoundException FileOutputStream(File file) throws FileNotFoundException FileOutputStream(File file,boolean append) throws FileNotFoundException:创建一个向具有指定 name 的文件中写入数据的输出文件流。如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处
import java.io.*;
public class TestFileInputStream {
public static void main(String[] args) { int b = 0;
FileInputStream in = null; try { in =
FileInputStream(\ } catch (FileNotFoundException e) {
System.out.println(\找不到指定文件\ System.exit(-1); } try {
long num = 0;
while((b=in.read())!=-1){ System.out.print((char)b); num++; }
in.close();
System.out.println();
System.out.println(\共读取了 \个字节\ } catch (IOException e1) {
System.out.println(\文件读取错误\ } } }
import java.io.*;
public class TestFileOutputStream {
public static void main(String[] args) { int b = 0;
FileInputStream in = null; FileOutputStream out = null; try {
in = new FileInputStream(\ out = new FileOutputStream(\ while((b=in.read())!=-1){ out.write(b); }
in.close(); out.close();
} catch (FileNotFoundException e2) {
System.out.println(\找不到指定文件\ } catch (IOException e1) {
System.out.println(\文件复制错误\ }
System.out.println(\文件已复制\ }
new
}
FileReader和FileWriter与FileInputStream和FileOutputStream类似,只是读取写出字节和字符的差别
处理流类型 处理类型 字符流 字节流 Buffering BufferedReader BufferedInputStream BufferedWriter BufferedOutputStream Filtering FilterReader FilterInputStream FilterWriter FilterOutputStream Converting between InputStreamReader bytes and character OutputStreamWriter Object Serialization - ObjectInputStream ObjectOutputStream Data conversion - DataInputStream DataOutputStream Counting LineNumberReader LineNumberInputStream Peeking ahead PushbackReader PushbackInputStream Printing PrintWriter PrintStream 缓冲流
缓冲流要“套接”在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法 JDK提供了四种缓存流,常见的构造方法为: BufferedReader(Reader in)
BufferedReader(Reader in,int size) //size为自定义缓存区的大小 BufferedWriter(Writer out)
BufferedWriter(Writer out,int size) BufferedInputStream(InputStream in)
BuffferedInputStream(InputStream in,int size) BufferedOutputStream(OutputStream out)
BufferedOutputStream(OutputStream out,int size)
缓冲输入流支持其父类的mark和reset方法 BufferedReader提供了readLine方法。用于读取一行字符串(以\\r或\\n分隔) BufferedWriter提供了newLine方法,用于写入一个换行符 对于输出的缓冲流,写出的数据会先在内存中缓存,使用flush方法将会使内存中的数据立刻写出
import java.io.*;
public class TestBufferStream1 {
public static void main(String[] args) { try {
相关推荐: