流
字符流
字节流
缓冲区
数据流---用于传输数据。IO流---Input/Output流。数据从外部流向程序---输入流;数据从程序流向外部的时候--输出流。读取一个文件---数据从文件流向程序---输入流;向一个文件中写入数据---数据从程序流向文件---输出流
根据数据流动的方向:输入流/输出流
根据数据传输的形式:字节流/字符流
输入流
输出流
字节流
InputStream
OutputSteam
字符流
Reader
Writer
这四个类是Java中四个流的基本类,但是这四个类都是抽象类,都不能用于直接创建对象
数据的来源:硬盘、网络、内存、输入设备
向一个文件中去写入数据---txt文件---字符流、输出流、文件流---
最简单的一个输入流,写入缓冲区中,再从缓冲区中读取出来
1 public static void main(String[] args) throwsIOException {2 //TODO Auto-generated method stub
3 String c; //设置一个字符串去接收缓冲区
4 InputStreamReader IsReader=new InputStreamReader(System.in);//输入流:键盘输入
5 BufferedReader bReader=new BufferedReader(IsReader);//将输入的存入缓冲区中
6 System.out.println("输入字符按q退出");7 do{8 c= bReader.readLine();//从缓冲区中读取
9 System.out.println(c);10 } while (!c.equals("q"));11 }
字符流
FileWriter
构造函数
FileWriter(String name)--传入文件路径,操作对应的文件---当文件不存在的时候,会创建这个文件;如果文件存在,则创建一个新文件覆盖源文件。
重要方法
write(String s)---写出字符串。数据不是直接写到目的地而是写到缓冲区中,等到缓冲区满了之后才会写到目的地中
flush()---冲刷缓冲区
close()---关闭流。流在关闭之前会自动的冲刷缓冲区。
代码实现:
1 public static void main(String[] args) throwsIOException {2 //创建一个FileWriter对象,并指定文件路径,该文件会被创建到指定目录下。如果该目录有同名文件,那么该文件将被覆盖。
3 FileWriter fw = new FileWriter("1.txt");4 //调用write的方法将字符串写到流中
5 fw.write("hello world!");6 //刷新流对象缓冲中的数据,将数据刷到目的地中
7 fw.flush();8 //关闭流资源,但是关闭之前会刷新一次内部缓冲中的数据。当我们结束输入时候,必须close();
9 fw.write("刷新");10 fw.close();11 //flush和close的区别:flush刷新后可以继续输入,close刷新后不能继续输入。
12 }
流的异常处理