创建源 -> 选择流 -> 操作 -> 释放
节点流 1.2.3.4.
1.访问文件
- FileInputStream
- FileOutputStream
//创建源
File fileIn=new File("D:\\note.txt");
File fileOut=new File("D:\\out.txt");
//选择流
FileInputStream fis=new FileInputStream(fileIn);
FileOutputStream fos=new FileOutputStream(fileOut);
//操作
//中间容器
byte[] flush=new byte[1024];
//接受长度
int len=0;
//循环读取
while((len=fis.read(flush))!=-1) {
//写出
fos.write(flush,0,len);
}
//释放
fos.close();
fis.close();
- FileReader
- FileWriter
//创建源
File fileIn=new File("D:\\note.txt");
File fileOut=new File("D:\\out.txt");
//选择流
FileReader fr=new FileReader(fileIn);
FileWriter fw=new FileWriter(fileOut);
//操作
//中间容器
char[] flush=new char[1024];
//接受长度
int len=0;
//循环读取
while((len=fr.read(flush))!=-1) {
//写出
fw.write(flush,0,len);
}
//释放
fw.close();
fr.close();
2.访问(字节/字符)数组
ByteArrayInputStream
ByteArrayOutputStream
CharArrrayReader
CharArrayWriter
3.访问管道//?
PipedInputStream
PipedOutputStream
PipedReader
PipedWriter
4.访问字符串
- StringReader
- StringWriter
//StringReader
String s="当月色染云鬓成霜";
StringReader sr=new StringReader(s);
char[] flush=new char[1024];
int len=0;
while((len=sr.read(flush))!=-1) {
System.out.println(new String(flush,0,len));
}
//StringWriter
StringWriter sw=new StringWriter();
sw.write("haha");
sw.append(" lowlow ");
sw.write("haha");
System.out.println(sw.toString());//打印出haha lowlow haha
//释放
sr.close();
sw.close();
5.对象流
- ObjectInputStream
- ObjectOutputStream
//ObjectOutputStream
//创建流
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(new File("D:\\out.txt")));
//写入
oos.writeDouble(123.456);
oos.writeInt(369);
oos.writeBoolean(true);
oos.writeUTF("不约儿童");
//释放
oos.close();
//ObjectInputStream
//创建流
ObjectInputStream ois=new ObjectInputStream(new FileInputStream(new File("D:\\out.txt")));
//读取(读与写的顺序一致)
double d=ois.readDouble();
int i=ois.readInt();
boolean b=ois.readBoolean();
String s=ois.readUTF();
//释放
ois.close();
6.转换流
InputStreamReader
OutputStreamWriter
//InputStreamReader File f=new File("D:\\note.txt"); InputStreamReader isr=new InputStreamReader(new FileInputStream(f),"gbk"); char[] flush=new char[1024]; while(isr.read(flush)!=-1) { System.out.println(new String(flush)); } isr.close(); //OutputStreamWrter File file=new File("D:\\out.txt"); OutputStreamWriter osw= new OutputStreamWriter(new FileOutputStream(file),"gbk"); osw.append("什么妖魔鬼怪"); osw.close();
过滤器流
7.缓冲流
- BufferedInputStream
- BufferedOutputStream
//选择流
BufferedInputStream bis=new BufferedInputstream(fis);
BufferedOutputstream bos=new BufferedOutputStream(fos);
//释放
bos.close();
bis.close();
- BufferedReader
- read(char[])
- readLine()
- BufferedWriter
//选择流
BufferedReader br=new BufferedReader(fr);
BufferedWriter bw=new BufferedWriter(fw);
String line;
//循环读取:使用readLine()方法
while((line=br.readLine())!=null) {
//操作
bw.write(line+"\n");
}
//释放
bw.close();
br.close();
8.数据流
DataInputStream
DataOutputStream
9.打印流
- PrintStream
PrintStream ps=new PrintStream(new File("D:\\out.txt"));
ps.append("asd");
ps.println(234);
ps.append("nn");
ps.close();
10.推回输入流
PushbackInputStream
PushbackReader
//选择流
ByteArrayInputStream bais=new ByteArrayInputStream("abcdefg".getBytes());
PushbackInputStream pis=new PushbackInputStream(bais);
//操作
int len=0;
while((len=pis.read())!=-1) {
if((char)len=='d') {
pis.unread('s');
}
System.out.print((char)len);
}
//释放
pis.close();