1、IO流
内存存储数据的特点:临时存储数据,所有软件的执行都要在内存中,电脑关机后内存中的数据就没了。
硬盘存储数据的特点:永久存储,电脑关机后硬盘的数据还在
I:input 输入(读取)
O:output:输出(写入)
流:流的本质也是对文件的处理
输入:把硬盘中的数据读取到内存中使用
输出:把内存中的数据写入到硬盘中保存
以内存为对象,从内存出去就是输出output,进入到内存就是输入input
2、 IO流顶层点的父类的分类
输入流 | 输出流 | |
字节流 | 字节输入流 InputStream |
字节输出流 OutputStream |
字符流 | 字符输入流 Reader |
字符输出流 Writer |
2、1字节流 一切皆为字节
我们的计算机只能识别 0、1的二进制,所以一切的文件数据(包括文本、图片、视频等)任意文件在存储的时候都是以二进制的形式保存在我们的计算机中,所以在传输时也是以字节的方式来读取,也就是说字节可以用来读取任意文件
2、2字节输出流OutputStream (java.io包下)
OutputStream是一个抽象类,此抽象类是表示输出字节流的所有类的超类
抽象类无法创建对象,所以我们要用它的子类,其中java.io.FileOutputStream
类是文件输出流,用于将数据写出到文件。
2、2、1 FileOutputStream类
java.io.FileOutputStream:文件字节输出流 extends OutPutStream 作用:把内存中的数据写入硬盘的文件中 构造方法: 1、FileOutputStream(String name)创建一个具有指定名称的文件中写入数据的输出文件流 目的地是一个文件的路径 2、FileOutputStream(File file) 创建一个向指定File对象表示的文件中写入数据的文件输出流 目的地是一个文件 作用: 1、创建一个FileOutputStream对象 2、会根据构造方法中传递的文件\文件路径,创建一个空的文件 3、会把FileOutputStream对象指向创建好的文件
运行后,在 C:\\Users\\siam\\Desktop\\java\\practice\\c.txt 路径下就分别成功用file对象和文件名创建流对象
2、2、1字节输出流写入数据的原理(内存-》硬盘)
一次写多个字节的方法
2、2、3数据的追加写和换行写
我们在之前写的里面发现都是在一行,没有换行,而且当我们再写一次的时候就会把之前的文件覆盖,并不是在之前的后面继续写数据,所以我们要写用追加写和换行写的方法
因为我们将append设置为true,所以源码不会被覆盖会继续追加,运行几次就会在c.txt文件中出现几次你好呀!
如图这样就换行成功了,
换行符号:Windows:\r\n linux:/n mac:/r
3、总结
java的api手册Java 8 中文版 - 在线API中文手册 - 码工具真的很好使,多看看就能知道一个类的属性构造方法等等,可以根据它的顺序来学习。
今天不早了,明天写剩下的字节输入流【InputStream】吧,白!