学习了一些关于文件的操作,一些使用Java操作进行输入输出的操作。
字节流和字符流的基本操作
1)字节输出流:outputStream
常用方法:close()关闭输出流
flush()刷新缓冲区
write()写入数据流(但只能以字节写入)
以上方法如果重新执行会覆盖文件中的已有内容,想要追加新内容通过FileOutputStream类的另一种构造方法进行实例化,如下:
File f=new File(路径);
OutputStream os=new FileOutpuStream(f,true);
2)字节输入流:InputStream
常用方法:available() 取得输入文件的大小
close()关闭输入流
read()读取内容
3)字符输出流:Writer
常用方法:close()关闭输出流
write()输出字符串或字符数组
flush()强制清空缓存
追加文件使用FileWriter类,同字节输出流
4)字符输入流:Reader
常用方法:close()关闭
read()读取字符到数组
字节流和字符流区别在于字节流直接对文件进行操作,而字符流是将数据先放在缓存之后,在写入文件的
转换流OutputStreamWriter类与IntputStreamReader类
OutputStreamWriter类是Writer的子类将输出的字符流变为字节流,即将一个字符流的输出对象变为字节流的输出对象。如下
Writer w=new OutputStreamWriter(new FileOutputStream(f));
IntputStreamReader类是Reader的子类将输入的字节流变为字符流,即将一个字节流的输入对象变为字符流的输入对象
Reader r=new InputStreamReader(new FileInputStream(f));
内存操作流程
字节内存流:ByteArrayInputStream(内存字节输入流);ByteArrayOutputStream(内存字节输出流)
字符内存流:CharArrayReader(内存字节输入流);CharArrayWriter(内存字节输出流)
首先是要声明内存的输入输出流,再去进行操作。
管道流
主要作用是可以进行两个线程间的通信
管道输出流:PipedOutputSream;管道输入流:PipedInputStream
用connect()方法来连接输出和输入流
打印流PrintStream
打印流进行格式化和C语言差不多
System类
1)System.out 向显示器上输出,是PrintStream的对象,PrintStream是OutputStream的字类,所以可以使用OutputStream向屏幕输出
2)Syatem.err 错误信息输出
3)System.in 键盘的输入流,是InputStream的对象