import java.io.*;
import java.io.File;
import java.io.RandomAccessFile;public class Test {
    public static void main(String[] args) {        char[] buf = new char[1024];
    //------------创建原始文件,并写入信息 ----------------------
        File f = new File("C:/read.txt");
        try
        {
            FileWriter out = new FileWriter(f);
            out.write("11111111");
            out.write("22222222");
            out.write("33333333");
            out.write("44444444");
            out.write("55555555");
            out.write("66666666");
            out.write("77777777");
            out.write("88888888");
            out.write("99999999");
            out.write("00000000");
            out.close();        }
        catch (IOException e)
        {
            System.out.println(e.getMessage());
        }        //------------读取原始文件信息,放入缓存 ----------------------
        try
        {
           FileReader in = new FileReader(f);           int len= in.read(buf, 0, 80);           //输出缓存内的信息
           System.out.println(new String(buf,0,len));
           System.out.println("lenth of buf:"+len);        }
        catch (IOException e)
        {
            System.out.println(e.getMessage());
        }         //------------写奇数行到 write.txt----------------------        File file = new File("C:/write.txt");
        try {
            FileWriter out2 = new FileWriter(file);            out2.write("写奇数行");
            for (int i = 0; i < 72; i = i + 16)
            {                out2.write(buf, i, 8);  //   写奇数行
                System.out.println(new String(buf,i,8));            }
            out2.close();
        }
        catch (IOException e)
        {
            System.out.println(e.getMessage());
        }        //------------反序写偶数行 到 write.txt----------------------
        File file2 = new File("C:/write2.txt");
        try
        {
            FileWriter out3 = new FileWriter(file2);
            
            out3.write("反序写偶数行");
            for (int i = 72; i > 0; i = i - 16)
            {                out3.write(buf, i, 8);  //  反序写偶数行
                System.out.println(new String(buf,i,8));            }
            out3.close();
        }
        catch (IOException e)
        {
            System.out.println(e.getMessage());
        }
      //  RandomAccessFile file3= new RandomAccessFile("c:\\write3.txt","rw");
       // for (int i = 0; i < 72; i = i + 16)
       //     {
         //       file3.write(buf, i, 8);  //   写奇数行        //    }    }}

解决方案 »

  1.   

    readline()只能在RandomAccessFile用阿
      

  2.   

    File file = new File("c:/a.txt");
    int i = 0;PrintWriter pout = new PrintWriter(new FileWriter(file));// 输出
    pout.println("11111111");
    pout.println("22222222");
    ...   ...//读入并输出
    BufferedReader in  = new BufferedReader(new FileReader(file));String szLine = in.readLine();while(szLine != null)
    {
        i ++;
        if (i%2 != 0) // 奇数时
            pout2.println(szLine);
        else          // 偶数时
            pout3.println(szLine);
    }