Je le code suivant:Lecture d'un fichier ASCII avec FileChannel et ByteArrays
String inputFile = "somefile.txt";
FileInputStream in = new FileInputStream(inputFile);
FileChannel ch = in.getChannel();
ByteBuffer buf = ByteBuffer.allocateDirect(BUFSIZE); // BUFSIZE = 256
/* read the file into a buffer, 256 bytes at a time */
int rd;
while ((rd = ch.read(buf)) != -1) {
buf.rewind();
for (int i = 0; i < rd/2; i++) {
/* print each character */
System.out.print(buf.getChar());
}
buf.clear();
}
Mais de personnages ne sera pas affiché à?. Cela a-t-il quelque chose à voir avec Java en utilisant des caractères Unicode? Comment est-ce que je corrige ceci?
Si vous voulez éviter d'imprimer chaque caractère séparément, vous pouvez simplement utiliser 'buf.flip()' au lieu de 'buf.rewind()', et passer tout le chbuf à 'System.out.print()' – hertzsprung