关于JAVA IO 问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 19:20:30
import java.io.*;
class Employee{
String name;
int age;
final static int LEN = 8;
public Employee(String name,int age){
if(name.length() >LEN)
name = name.substring( 0,8);
else
{
while(name.length() <0);
name = name+"\u0000";
}
this.name = name;
this.age = age;
}
}
public class RandomFileTest {

/**
* @param args
*/
public static void main(String[] args) {
Employee e1 = new Employee("Lisi",20);
Employee e2 = new Employee("zhangsn",26);
// Employee e3 = new Employee("王五",30);
//Employee e4 = new Employee("张1三",10);
try{
RandomAccessFile ra = new RandomAccessFile("c:\\2.txt","rw");
ra.write( e1.name.getBytes() );
ra.writeInt( e1.age ) ;
ra.write( e2.name.getBytes() );
ra.writeInt( e2.age);

两个地方出错:

1。当姓名长度小于8时 补足8位

while(name.length() <LEN) //分号去掉
name = name+"\u0000";

2。i 为什么等于9 ? 改为0

for(int i =0;i<len;i++)
str = str+(char)raf.readByte() ;

import java.io.*;
class Employee{
String name;
String age;
//final static int LEN = 8;
public Employee(String name,String age){

this.name = name;
this.age = age;
}
}
public class RandomFileTest {

/**
* @param args
*/
public static void main(String[] args) {
Employee e1 = new Employee("Lisi","20");
Employee e2 = new Employee("zhangsn","26");
// Employee e3 = new Employee("王五",30);
//Employee e4 = new Employee("张1三",10);
try{
RandomAccessFile ra = new RandomAccessFile("d:\\2.txt","rw");
ra.write(10);
ra.write(e1.name.getBytes()