在Java中,读写原始数据可以使用字节流和字符流。
字节流可以读写8位字节,适用于处理二进制数据或者非文本文件。
字符流可以读写16位Unicode字符,适用于处理文本数据。
通常,使用字节流读写二进制文件,使用字符流读写文本文件。
InputStream和OutputStream是字节流操作的抽象基类。
InputStream提供了一种逐个字节读取数据的方法,常用的实现类有FileInputStream和ByteArrayInputStream。
OutputStream提供了一种逐个字节写入数据的方法,常用的实现类有FileOutputStream和ByteArrayOutputStream。
使用InputStream和OutputStream可以读写任何类型的二进制文件,例如图片、音频、视频等。
Reader和Writer是字符流操作的抽象基类。
Reader提供了一种逐个字符读取数据的方法,常用的实现类有FileReader和StringReader。
Writer提供了一种逐个字符写入数据的方法,常用的实现类有FileWriter和StringWriter。
使用Reader和Writer可以读写任何类型的文本文件,例如.txt、.xml等。
Buffered流是字节流和字符流的高级流,提供了缓冲的读取和写入操作。
使用BufferedInputStream和BufferedOutputStream可以提高读写效率,减少磁盘访问次数,充分利用缓存,提高文件读写速度。
使用BufferedReader和BufferedWriter可以提高读写效率,减少IO操作次数,充分利用缓存,提高文件读写速度。