java中的常用IO流
一. 输入流(读取)
-
字节输入流:
InputStream
字节输入流的抽象基类-
字节文件读取流:
FileInputStream
将文件连接到一个字节输入流FileInputStream
构造方法: FileInputStream(File f)
File f = new File("test.md"); FileInputStream fis = new FileInputStream(f); //以字节流形式读取文件f int i = 0; // 一次读取一个字节 while ((i = fis.read()) != -1) { System.out.print((char) i + " "); // A B C D } fis.close();
-
字节缓冲输入流:
BufferedInputStream
将输入字节流放至缓冲区的流,提高读取效率构造方法:BufferedInputStream (InputStream in)
-
字符输入流:
Reader
字符输入流的抽象基类-
字符转换流:
InputStreamReader
字节流转字符流,将输入的字节流转化为字符流构造方法: InputStreamReader (InputStream in)
-
字符文件读取流:
FileReader
将文件连接到一个字符输入流,采用默认字符编码构造方法: FileReader(File f)
-
字符缓冲流:
BufferedReader
从输入字符流中读取文本,缓冲各个字符,从而高效读取构造方法: BufferedReader(Reader in)
特有方法: String readLine() //读取一个文本行,遇到'\n'结束读取,返回该行字符串,末尾返回null
// 从控制台获取输入 字节流 经InputStreamReader转换流 转化为字符流, 再通过BufferedReader来读取 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); enterInt = Integer.parseInt(br.readLine()); //读取int整数 enterDouble = Double.parseDouble(br.readLine()); //读取double浮点数 br.close(); //一定记得关闭Stream
二. 输出流 (写入)
-
字节写入流:
-
OutputStream
字节输出流的抽象基类,所有输出字节流的超类常用方法:write(byte[] b) 将byte数组写入此输出流
常用方法:write(int b) 将指定的字节写入此输入流
常用方法:write(byte[] b, int off, int len) 将byte[]数组偏移off的字节开始的len个字节写入此输入流
-
字节文件写入流:
FileOutputStream
将字节流形式的数据写入到文件中构造方法:FileOutputStream (File f)
// 创建FileOutputStream流,用于将字节流写入文件 FileOutputStream fos = new FileOutputStream(new File("demo.txt")); // 写入数据,常用方法: write(byte[] b) fos.write("ABCD".getBytes()); // 关闭流 fos.close();
-
字节缓冲输出流:
BufferedOutputStream
将即将输出的字节放入缓冲区构造方法: BufferedOutputStream(OutputStream out)
// 创建字节缓冲输出流,以将数据放在指定的底层输出流(缓冲区) BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("demo.txt")); // 写入内容 bos.write("Hello World\n".getBytes()); // 写入换行符 bos.write("\r\n".getBytes()); // 刷新此缓冲的输出流 bos.flush(); // 关闭流 bos.close();
-
-
字符写入流:
-
Writer
写入字符流的抽象基类常用方法:write(char[] chuf) 将char数组写入到输出流
常用方法:write(int c) 将单个字符char写入输出流
常用方法:write(String str) 将字符串写入到输出流
常用方法:append(String str) 同write作用相同,但是他的返回值是一个writer,故可以多次连续使用
-
字符转换流:
OutputStreamWriter
将字节流转化为字符流来输出构造方法:OutputStreamWriter (OutputStream os)
-
字符文件写入流:
FileWriter
将字符写入进文本的写入流构造方法:FileWriter (File f)
-
缓冲字符写入流:
BufferedWriter
将即将被写入的字符数据放入缓冲区,注意关闭缓冲流构造方法:BufferedWriter (Writer w)
特有方法:newLine() 写入一个换行符
-