写了前几次代码后发现我对输入输出流很不了解,做那个从键盘读取数据然后判断月份写的也很是困难。所以现在要开始学习输入输出流。IO加油!
输入输出时相对于内存而言的。当需要写入内存的时候就是 输入(读),当从内存往外写的时候就是输出(写)。一般数据的读写需要通过内存的中介进行运算。按数据操作分为字节流和字符流;按流方向分为输入流和输出流。
那什么是字节流什么是字符流呢。在计算机中全部都是二进制的数据,同时视频音频图片都必须用字节流进行读取。字符流是字节流的扩展(用字节流和编码表相结合,向字节流一样读取硬盘上的字符数据)。
字节流的两个顶层父类:
1,InputStream 2,OutputStream
字符流的两个顶层父类:
1,Reader(输入流)2,Writer(输出流)
都以父类名作为后缀,前缀就是对象的功能
那么咱就从熟悉的文字开始字符流:好了具体的一个小例子如下:
public static void main(String[] args) throws IOException {
//需求:将一些文字存储到硬盘文件中,文字数据(优先考虑字符流,
//而且要将数据从内存写到硬盘上,我们要使用输出流Writer 即 FileWriter)
/*创建一个可以往文件中写入字符数据的字符输出对象
* 既然是往一个文件中写如字符数据,在创建时必须明确该文件(用于存储数据的目的地)
* 如果文件存在则会覆盖
*/
FileWriter fw = new FileWriter("demo.txt");
//基本步骤:将文字写入临时存储缓冲区中;刷新流缓冲区;关闭资源
fw.write("临危而安's demo fight2015/7/22");//写入流中
// 刷新该流的缓冲。如果该流已保存缓冲区中各种 write() 方法的所有字符,则立即将它们写入预期目标
fw.flush();//刷新调用windows写入资源,写完后需要关闭
//关闭流,关闭资源,在关闭前会调用flush
fw.close();
//fw.write("临危而安霸气");
}
运行结果为: