При изучении Java IO я обнаружил, что fileInputStream
имеет метод availabl()
, который может быть равен размеру файла при чтении локальных файлов . Так что если вы можете напрямую узнать размер файла, то в случае нужно прочитать весь файл , необходимо ли использовать BufferedInputStream
для его украшения?
как это:
FileInputStream fileInputStream=new FileInputStream("F:\\test.txt");
byte[] data=new byte[fileInputStream.available()];
if (fileInputStream.read(data)!=-1) {
System.out.println(new String(data));
}
или
BufferedReader bufferedReader=new BufferedReader(new
FileReader("F:\\test.txt"));
StringBuilder stringBuilder=new StringBuilder();
for (String line;(line=bufferedReader.readLine())!=null;){
stringBuilder.append(line);
}
System.out.println(stringBuilder.toString());
или
BufferedInputStream bufferedInputStream=new BufferedInputStream(new FileInputStream("F:\\test.txt"));
byte[] data=new byte[bufferedInputStream.available()];
if (bufferedInputStream.read(data)!=-1) {
System.out.println(new String(data));
}
Каковы плюсы и минусы этих методов? Какой из них лучше?
ТНХ.