是否有任何可能的方法可以将标记支持的功能FileInputStream
创建为true
?
答案 0 :(得分:18)
将您的Fileinputstream包装在BufferedInputStream。
中缓冲流支持标记。
答案 1 :(得分:11)
将其包裹在BufferedInputStream
。
而不是
FileInputStream fis = new FileInputStream(...);
这样做:
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(...));
并使用bis
代替fis
;你的代码中没有别的东西可以改变。
答案 2 :(得分:10)
BufferedInputStreams并不神奇。它们只支持与底层缓冲区一样大的标记,这些缓冲区将占用内存。因此,如果沿着这条路线前进,重要的是要了解用例并可能使用适当大小的缓冲区调用BufferedInputStream构造函数。如果基础文件开始变大并且你标记得足够远,那么这种技术可能不适合你。
答案 3 :(得分:0)
尝试这样的事情
public FileInputStream fstream;
public DataInputStream in;
public BufferedInputStream bs;
public String path;
public void myExample() throws IOException{
path = "yourPath";
try {
fstream = new FileInputStream(path);
in = new DataInputStream(fstream);
bs = new BufferedInputStream(new InputStreamReader(in));
//do something
br.close(); //when do something is completed
} catch (FileNotFoundException ex) {
JOptionPane.showMessageDialog(null, "File not found");
}
}