Mega Code Archive

 
Categories / Java Tutorial / File
 

Save and read text using FileChannel without encoding

import java.io.FileInputStream; import java.io.FileOutputStream; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.charset.Charset; public class MainClass {   private static final int BSIZE = 1024;   public static void main(String[] args) throws Exception {     FileChannel fc = new FileOutputStream("data2.txt").getChannel();     fc.write(ByteBuffer.wrap("Some text".getBytes()));     fc.close();     fc = new FileInputStream("data2.txt").getChannel();     ByteBuffer buff = ByteBuffer.allocate(BSIZE);     fc.read(buff);     buff.flip();     System.out.println(buff.asCharBuffer());     // Decode using this system's default Charset:     buff.rewind();     String encoding = System.getProperty("file.encoding");     System.out.println("Decoded using " + encoding + ": " + Charset.forName(encoding).decode(buff));     // Or, we could encode with something that will print:     fc = new FileOutputStream("data2.txt").getChannel();     fc.write(ByteBuffer.wrap("Some text".getBytes("UTF-16BE")));     fc.close();   } }