Ответ 1
Оберните свой Fileinputstream внутри BufferedInputStream.
Буферизованные потоки поддерживают метки.
Есть ли способ создать FileInputStream
с поддержкой знака как true
?
Оберните свой Fileinputstream внутри BufferedInputStream.
Буферизованные потоки поддерживают метки.
Оберните его в BufferedInputStream
.
вместо
FileInputStream fis = new FileInputStream(...);
сделайте следующее:
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(...));
и используйте bis
вместо fis
; ничто не должно измениться в вашем коде.
BufferedInputStreams не являются волшебными. Они будут поддерживать только маркеры размером с базовые буферы, и эти буферы будут занимать память. Поэтому, если вы спуститесь по этому маршруту, важно, чтобы вы поняли пример использования и потенциально вызвали конструктор 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");
}
}