package hometest;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
public class IOFileTest {
public static void main(String[] args) throws IOException {
//创建目录
File f = new File("shirui");
if(!f.exists()){
f.mkdir();
}
//在shirui文件夹中创建raf.dat
File f2 = new File(f, "raf.dat");
if(!f2.exists()){
f2.createNewFile();
}
//打开这个文件,进行随机读写
RandomAccessFile raf = new RandomAccessFile(f2, "rw");
//输出默认的“游标”位置
System.out.println(raf.getFilePointer());//0
raf.write('A');//写入字符'A'
System.out.println(raf.getFilePointer());//1
raf.write('B');
int i = 0x7fffffff;//写入整数0x7fffffff
raf.write(i);
//写入GBK编码中的字符'中',GBK编码为d6d0
String s = "中";
//得到“中”的gbk编码形式
byte[] gbk = s.getBytes("gbk");//gbk={d6, d0}
raf.write(gbk);
System.out.println(raf.length());
System.out.println(raf.getFilePointer());
raf.close();
}
}
上面的代码我输入了4个字符,运行后的结果是,我认为应该是0,1,4,4才对啊。第二个问题是我打开raf.dat文件,里面写的是AB 中,为什么没有输入的整数i? |