【发布时间】:2011-07-26 15:41:25
【问题描述】:
是否有任何可能的方法来创建 FileInputStream 并将支持的功能标记为 true?
【问题讨论】:
标签: java inputstream
是否有任何可能的方法来创建 FileInputStream 并将支持的功能标记为 true?
【问题讨论】:
标签: java inputstream
将其包裹在BufferedInputStream中。
而不是
FileInputStream fis = new FileInputStream(...);
这样做:
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(...));
并使用bis 而不是fis;您的代码中无需更改任何其他内容。
【讨论】:
将您的 Fileinputstream 包装在 BufferedInputStream 中。
缓冲流支持标记。
【讨论】:
试试这样的
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");
}
}
【讨论】:
BufferedInputStreams 并不神奇。它们将仅支持与其底层缓冲区一样大的标记,并且这些缓冲区将占用内存。因此,如果您沿着这条路线走,重要的是您了解使用案例并可能使用适当大小的缓冲区调用 BufferedInputStream 构造函数。如果底层文件开始变大并且您标记得足够远,那么这种技术可能不适合您。
【讨论】: