本帖最后由 王志明 于 2012-7-31 01:54 编辑
当局部变量和成员变量同名时,以this.成员变量区分
读取文件时可以使用嵌套循环,省点事
- import java.io.IOException;
- import java.io.RandomAccessFile;
- public class Test2 {
- public static void main(String[] args) throws IOException {
- // 写入数据
- Employee e1 = new Employee("张三", 23);
- Employee d2 = new Employee("李四", 24);
- Employee f3 = new Employee("王五", 25);
- RandomAccessFile ra = new RandomAccessFile("1.txt", "rw");
- ra.writeChars(e1.name);// writeChars
- // 将字符串写入,写入姓名,转换成字节getBytes遇到英文转换成字节为1,遇到中文转换字节2
- ra.writeInt(e1.age);// weite为一个字节,WeiteInt是四个字节
- ra.writeChars(d2.name);// writeChars 将字符串写入
- ra.writeInt(d2.age);// weite为一个字节,WeiteInt是四个字节
- ra.writeChars(f3.name);// writeChars 将字符串写入
- ra.writeInt(f3.age);// weite为一个字节,WeiteInt是四个字节
- ra.close();// 关闭
- // 读取数据
- String strName = "";
- RandomAccessFile du = new RandomAccessFile("1.txt", "r");
- // 这里使用嵌套循环可以省点事
- for (int i = 0; i < 3; i++) {
- for (int j = 0; j < Employee.Len; j++) {
- strName += du.readChar();
- }
- System.out.println(strName.trim() + ":" + du.readInt());// .trim去掉字符串中不可显示的字符
- strName = "";
- }
- du.close();// 关闭
- }
- }
- class Employee {
- public String name;
- public int age;
- public static final int Len = 10;
- public Employee(String name, int age) {
- // 要先将name的值赋给this.name,再对this.name进行操作
- // 当局部变量和成员变量同名时,以this.成员变量区分
- this.name = name;
- this.age = age;
- if (this.name.length() > Len) {
- this.name.substring(0, Len);// 当员工姓名超过8个字符自动取8个字符,substring方法
- } else {
- while (this.name.length() < Len) {
- this.name += "\u0000";
- }
- }
- }
- }
复制代码 |