日期:2014-05-20  浏览次数:20692 次

内存映射文件问题
为了加快读写操作,想用内存映射文件写文件
s是一个很大的字符串
public   static   void   write(String   s)   throws   IOException   {
        File   f   =   new   File( "1.txt ");
        f.createNewFile();
        FileChannel   fc   =   new   RandomAccessFile(f,   "rw ").getChannel();
        CharBuffer   cb   =   fc.map(FileChannel.MapMode.READ_WRITE,   0,  
                                          s.length()   *   2).asCharBuffer();
        cb.put(s);
        fc.close();
}
但是这样s中的中文却变成乱码,如何解决???
怎么样写的又快又没有乱码呢????


------解决方案--------------------
String s = "this is 测试 demo ";
File f = new File( "d:\\1.txt ");
f.createNewFile();

FileChannel fc = new RandomAccessFile(f, "rw ").getChannel();
ByteBuffer cb = fc.map(FileChannel.MapMode.READ_WRITE, 0, s.length() * 2);
cb.put(s.getBytes( "gb2312 "));
fc.close();