用哪种文件流读写比较合适?能比较好的处理读取或写入一定个数的字符?比如:
写文件,根据界面的录入将一个学生的信息写到文件中,姓名占据10个字符,不足则用空字符填充;其次为年级,占8个字符,不足用空字符填充;其他性别、个人说明类似。总共500个字符。读文件,若要读取该文件中包含的学生的年级。应该是每500个字符读得到一个学生的信息,再读取这500个字符中的11到18个字符获得年级并去掉空字符

解决方案 »

  1.   

    InputStream、OutputStream不行吗?
      

  2.   

    package test18;import java.util.Date;
    import java.io.IOException;
    import java.text.SimpleDateFormat;public class FindWorkDate
    {
       public FindWorkDate(  )
       {
          super();
          // TODO 自动生成构造函数存根
       }
       public static Date findDate(Date date){
          int i=0;
          Date  oDate = date ;
          int day ;
             day = oDate.getDay() ;
             if(day == 0 )  i =2;  
             if(day == 1 )  i =3;
             if(day>1)  i=1;
          oDate.setDate(date.getDate() -i );
          return oDate;
       }   /**
        * @param args
        * @throws IOException 
        */
       public static void main( String[] args ) throws IOException
       {
          // TODO 自动生成方法存根
          SimpleDateFormat  sdf = new SimpleDateFormat("yyyy-MM-dd");
          System.out.print( sdf.format(FindWorkDate.findDate(new Date())));
       }}
      

  3.   

    就用 FileInputStream、FileOutputStream 吧。里面有文件指针
      

  4.   

    用RondomAccessFile
    里面有写入指定长度byte和读取指定长度btye和跳过多少字节开始读取写入等
      

  5.   

    写成xml是不是更好?或者用特殊字符来分隔各个字段,然后用StringTokenizer来读取各个字段。如果非要那样读就用RondomAccessFile
      

  6.   

    补充一下我上面的:读取的时候用跳skipBtyes()方法.在这之前你需要手动编写定长的代码。,也就是说你不足10个,用10个表示这个需要手动加.你可以用个循环.如
    while(name<10)
    {
      name=name+"\u0000"
    }
    这样来加一个空格.然后读的时候就方便了..