读书人

说说二进制I/O的疑义

发布时间: 2013-08-09 15:16:24 作者: rapoo

说说二进制I/O的疑问
二进制I/O这一章在讲随机访问文件时(RandomFileStream)通过和其他流的对比来说明它的优点的:“到现在为止,所使用的数据流都是只读的或者只写的。这些数据流的外部文件都是顺序文件,如果不创建新文件就不能更新它们。”为什么不创建新文件就不能更新它们呀。求大神给个例子超度超度我。
[解决办法]

引用:
二进制I/O这一章在讲随机访问文件时(RandomFileStream)通过和其他流的对比来说明它的优点的:“到现在为止,所使用的数据流都是只读的或者只写的。这些数据流的外部文件都是顺序文件,如果不创建新文件就不能更新它们。”为什么不创建新文件就不能更新它们呀。求大神给个例子超度超度我。


楼主,我手头资料没有你的那句话,但是我手头学习资料有这么一句话“RandomFileStream类提供了一个文件指针,用来标识要进行读写操作的下一数据的位置”

我自己对这句抽象的话理解是参照链式表,可以随时打断指向重新建立。
底层实现,猜想类似arraylist和linkedlist区别。

不一定对,我也刚学习到这块。
[解决办法]
RandomAccess

引用:
import java.io.*;
public class TestFileStream {
public static void main(String[] args){
int[] a= new int[10];
try{
FileInputStream input = new FileInputStream("test.dat");
FileOutputStream output = new FileOutputStream("test.dat"); for(int i=0;i<10;i++){
output.write(i);
}
output.close();
int value;
while((value=input.read())!=-1){
System.out.println(value);
}
input.close();
}catch(IOException ex){
ex.printStackTrace();
}
}
}

可以参阅FileInputStream的源码:

public FileInputStream(String name) throws FileNotFoundException {
this(name != null ? new File(name) : null);
}

实际上还是new 了File的。

读书人网 >J2SE开发

热点推荐