BufferedInputStream est une classe qui fait partie du paquetage java.io et qui hérite de InputStream. Elle ne fait pas réellement d’entrées/sorties mais décore un autre InputStream, en ajoutant des fonctionnalités de buffering.
InputStream
On lit le contenu octet par octet.
File file = new File("data/example.txt");
byte[] result = new byte[(int) file.length()];
try (InputStream input = new FileInputStream(file)) {
int currentByte;
int pos = 0;
while ((currentByte = input.read()) > 0) {
result[pos++] = (byte) currentByte;
}
}
System.out.println(new String(result));
La lecture octet par octet n’est pas performante. Autre solution, lire tout le contenu (JDK 9).
result = input.readAllBytes();
ou un paquet (JDK 11)
buffer = input.readNBytes(size);
Pour les plus anciens JDK
byte[] buffer = new byte[size];
input.read(buffer);