RandomAccessFile类的使用问题

我是一只鱼 发布于 2011/08/08 19:16
阅读 691
收藏 0
import java.io.File ;
import java.io.RandomAccessFile ;
public class RandomAccessFileDemo01{
	// 所有的异常直接抛出,程序中不再进行处理
	public static void main(String args[]) throws Exception{
		File f = new File("d:" + File.separator + "test.txt") ;	// 指定要操作的文件
		RandomAccessFile rdf = null ;		// 声明RandomAccessFile类的对象
		rdf = new RandomAccessFile(f,"rw") ;// 读写模式,如果文件不存在,会自动创建
		String name = null ;
		int age = 0 ;
		name = "zhangsan" ;			// 字符串长度为8
		age = 30 ;					// 数字的长度为4
		rdf.writeBytes(name) ;		// 将姓名写入文件之中
		rdf.writeInt(age) ;			// 将年龄写入文件之中
		name = "lisi    " ;			// 字符串长度为8
		age = 31 ;					// 数字的长度为4
		rdf.writeBytes(name) ;		// 将姓名写入文件之中
		rdf.writeInt(age) ;			// 将年龄写入文件之中
		name = "wangwu  " ;			// 字符串长度为8
		age = 32 ;					// 数字的长度为4
		rdf.writeBytes(name) ;		// 将姓名写入文件之中
		rdf.writeInt(age) ;			// 将年龄写入文件之中
		rdf.close() ;				// 关闭
	}
};

有个人写了这个一个程序,我运行了一下,感觉有点不对劲,运行没问题,就是结果他只写入字符,没写入数字。

test.txt中的内容如下:

结果

加载中
0
红薯
红薯
你应该将整数转成字符串再写入
0
穿着马甲的鸟
穿着马甲的鸟
用HEX编辑器打开存盘文件,应该可以看见保存的数字了。记事本不会显示非字符信息的。
0
Shavt
Shavt
用这个写入是写入数据的byte[],所以你想数字进去能显示吗?建议去看下 http://www.ibm.com/developerworks/cn/java/l-javaio/
返回顶部
顶部