一、字节流:包括字节输入流(InputStream)和字节输出流(OutputStream)。
在使用的时候它们不能直接使用要用它们的子类。就是在两个父类前加上File,即为:FileInputStream和FileOutput Stream。
1、FileOutputStream的一些使用小细节:(1)参数是一个字符串路径或者是File对象都行。
(2)若不存在则在父级路径上创建一个文件再写入。
(3)若文件已存在则会清空文件内容再写入。(可以在文件名的参数后面加上续写开关true,打开续写)
(4)其是write方法写入的,其中参数可以为整数,字节型数组,字符串。输入的整数会自动转换成相应的ASCII对应的字符。
(5)每次使用之后都需要关流。
2、FileinputStream的一些使用细节:(1)文件不存在直接报错。
(2)只能一个字节一个字节的读。
(3)读到文件末尾则会返回-1。
(4)每次使用之后都需要关流。
二、字符流:包括字符输入流(write)和字节输出流(read)。
它们的使用跟字节流是一样的,不能直接使用,要用它们的子类。也是在前面加上FileWrite,FileRead。
1、FileRead的一些使用小细节:(1)其也是一个字节一个字节的读,在读到中文时一次性多读几个字节,在读完之后会转化成十进制的值。
(2)要想读到显示的是汉字则需要用强制转换成char类型的就行。
(3)每次使用之后都需要关流。
2、FileWrite的一些使用小细节:(1)
(2)若不存在则在父级路径上创建一个文件再写入。
(3)若文件已存在则会清空文件内容再写入。(可以在文件名的参数后面加上续写开关true,打开续写)
(4)其是用write方法写入的其参数是整型的,但会在写入后自动转换成对应的字符
(5)每次使用之后都需要关流。
三、总体细节
1、在使用I/O流时编译器都会报错,因此我们需要在main中将错误抛出才能运行。
2、还有就是文件的路径,你可以写相对路径也可以写绝对路径,但切记用相对路径时要确保你的代码要和文件在同一文件夹中。
3、在读出文件的内容时一定要确保文件已被释放资源,否则在读出时会出现乱码。