CharsetDecoder decoder = Charset.forName("ISO-8859-1").newDecoder();
FileChannel channel = new FileInputStream(pluginListFileName).getChannel();
ByteBuffer buffer = ByteBuffer.allocateDirect(1);
String pluginName;
StringBuffer stringBuffer = new StringBuffer();
CharBuffer charBuffer;
loadedPlugins.clear();
try {
while (channel.read(buffer) != -1) {
buffer.flip();
charBuffer = decoder.decode(buffer);
if (charBuffer.toString() != "\n") {
stringBuffer.append(charBuffer.toString());
System.out.println("Appending...");
} else {
pluginName = stringBuffer.toString();
System.out.println("Creating...");
}
}
} finally {
channel.close();
}
Opa, quando eu executo channel.read(buffer) sempre me retorna 0! Porquê isso? Algum problema com o arquivo? Ah e essa minha solução para ler uma linha do arquivo é eficiente? (claro que seria separada em funções, esse é apenas um protótipo para fins de benchmarking).
Muito Obrigado.