Чтение текстового файла в строку используя NIO
//Чтение текстового файла в строку используя NIO //Используется java.nio.channels.FileChannel, java.nio.MappedByteBuffer; //java.nio.CharBuffer;,java.nio.charset.CharsetDecoder; package readFile;
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder;
public class Read2 { private static Charset charset = Charset.forName("utf-8"); private static CharsetDecoder decoder = charset.newDecoder();
static String readFile(String filename , String str){ FileInputStream fileInputStream; FileChannel fileChannel; StringBuffer sb = new StringBuffer(2048); StringBuilder sbl=new StringBuilder(2048); long fileSize; MappedByteBuffer mBuf;
try { fileInputStream = new FileInputStream(filename); fileChannel = fileInputStream.getChannel(); fileSize = fileChannel.size(); mBuf = fileChannel.map(FileChannel.MapMode.READ_ONLY, 0, fileSize); CharBuffer cb = decoder.decode(mBuf); while (cb.hasRemaining()) { sbl.append(String.valueOf((char)cb.get())); } fileChannel.close(); fileInputStream.close(); } catch (IOException exc) { System.out.println(exc); System.exit(1); } return sbl.toString(); }
public static void main(String[] args) {
String fl="/MyDir/myfile.txt"; String out=""; long start = System.currentTimeMillis(); // start timing out=readFile("/MyDir/myfile.txt" , ""); System.out.println("out "+out); long stop = System.currentTimeMillis(); // stop timing System.out.println("TimeMillis: " + (stop - start)); }
}
|