原文链接 作者: Jakob Jenkov
RandomAccessFile允许你来回读写文件,也可以替换文件中的某些部分。FileInputStream和FileOutputStream没有这样的功能。
#创建一个RandomAccessFile
在使用RandomAccessFile之前,必须初始化它。这是例子:
请注意构造函数的第二个参数:“rw”,表明你以读写方式打开文件。请查阅Java文档获知你需要以何种方式构造RandomAccessFile。
原文链接 作者: Jakob Jenkov
Java IO API中的FIle类可以让你访问底层文件系统,通过File类,你可以做到以下几点:
请注意:File只能访问文件以及文件系统的元数据。如果你想读写文件内容,需要使用FileInputStream、FileOutputStream或者RandomAccessFile。如果你正在使用Java NIO,并且想使用完整的NIO解决方案,你会使用到java.nio.FileChannel(否则你也可以使用File)。
#实例化一个java.io.File对象
在使用File之前,必须拥有一个File对象,这是实例化的代码例子:
很简单,对吗?File类同样拥有多种不同实例化方式的构造函数。
作者: Jakob Jenkov
本小节会简要概括Java IO中字节数组与过滤器的输入输出流,主要涉及以下4个类型的流:ByteArrayInputStream,ByteArrayOutputStream,FilterInputStream,FilterOutputStream。请注意,为了清晰,这里忽略了必要的异常处理。想了解更多异常处理的信息,请参考Java IO异常处理。
#ByteArrayInputStream
ByteArrayInputStream允许你从字节数组中读取字节流数据,代码如下:
如果数据存储在数组中,ByteArrayInputStream可以很方便地读取数据。如果你有一个InputStream变量,又想从数组中读取数据呢?很简单,只需要把字节数组传递给ByteArrayInputStream的构造函数,在把这个ByteArrayInputStream赋值给InputStream变量就可以了(译者注:InputStream是所有字节输入流流的基类,Reader是所有字符输入流的基类,OutputStream与Writer同理)。