I/O流
字节流
输入流
InputStream
FileInputStream
public int read( ) 一次读取一个字节并返回 没有返回-1
public int read(byte[ ] buffer ) 一次读取一个字节数组并返回读取个数 读取到的字节存在buffer 没有返回-1
new String(buffer) 可以把字节转化为字符
new String(buffer,0,len) 把字节数组的 0到len 转化为字符
public byte[ ] readAllBytes( ) 一次读完所有字节
输出流
OutputStream
FileOutputStream
write( byte[ ] )
OutputStream os = new FileOutputStream("url",true);
字符流
输入流
Reader
FileReader
输出流
Writer
FileWriter
Reader reader = new FileReader("src/test.txt");
Writer writer = new FileWriter("src/new.txt");
char[] chars = new char[1024];
int len = 0;
while ((len = reader.read(chars)) != -1) {
writer.write(chars,0,len);
System.out.println(new String(chars,0,len));
}
reader.close();
writer.close();
缓冲流
字符缓冲流
Reader reader = new BufferedReader(new FileReader("src/new.txt"));
Writer writer = new BufferedWriter(new FileWriter("src/new1.txt"));
readLine( ) 按行读 返回读取一行的字符
newLine( ) 换行
解决读取不同编码乱码问题
InputStreamReader(InputStream is,String charset)
OutputStreamWriter(OutputStreamWriter os,String charset)
字节缓冲流类似
对象序列化、反序列化
对象输出
ObjectOutPutStream
ObjectOutputStream oos =new ObjectOutputStream(new FileOutputStream("url"))