有没有办法用标记功能创建FileInputStream?

时间:2011-03-31 06:47:22

标签: java inputstream

是否有任何可能的方法可以将标记支持的功能FileInputStream创建为true

4 个答案:

答案 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");
        }
        }