不止有没有更好的方法,但我这个时必定可行的方法,就是把你这个二维数组的内容按照你所列的格式那样放到一个String里面然后写出文件。然后度的时候也都城String对象,然后用java.util.StringTokenizer一个一个提取出来,放到二维数组里面。

解决方案 »

  1.   

    这种方法,以二进制存储,最省地方,最快,
    但是用记事本打开,看不出来,必须用16进制编辑器打开才能看,
    不过用程序读出来很容易下例:write往文件写,read从文件读
    import java.io.*;
    import java.util.Random;public class XXX
    { public static void main(String args[])
    {
    write();
    read();

    }

    public static void write()
    {
    System.out.println("Write");
    try{
    int x = 5;
    int y = 6;
    BufferedOutputStream fout = new BufferedOutputStream(
    new FileOutputStream("d:\\index.txt"));
    fout.write(x);
    fout.write(y);

    Random rand = new Random();
    int array[][] = new int[x][y];

    for(int i=0; i<x; i++){
    System.out.println();

    for(int j=0; j<y; j++){
    int temp = rand.nextInt(100);
    System.out.println(temp);
    fout.write(temp);
    }
    }
    fout.close();
    }catch(Exception e)
    { System.out.println(e);}

    }
    public static void read()
    {
    System.out.println("Read");
    try{
    BufferedInputStream fin = new BufferedInputStream(
    new FileInputStream("d:\\index.txt"));
    int x, y;
    x = fin.read();
    y = fin.read();
    int array[][] = new int[x][y];

    for(int i=0; i<x; i++){
    System.out.println();
    for(int j=0; j<y; j++){
    int temp = fin.read();
    System.out.println(temp);
    }
    }
    fin.close();
    }catch(Exception e)
    { System.out.println(e);}
    }
    }
      

  2.   

    DanielYWoo(绿色毒汁) 谢谢你,
    刚才我也把这个程序写出来了import java.util.*;
    import java.io.*;public class Create extends Random
    { public static final int LINE=10;
    public static void main(String[] args)
    {
    Create ni=new Create();
    int[][] p=new int[3][LINE];
    for (int i=0;i<3;++i)
    for (int j=0;j<LINE;++j)
    p[i][j]=ni.next(8);
    try
    {
    FileOutputStream fo=new FileOutputStream("unsort");
    DataOutputStream dout=new DataOutputStream(fo);
    for (int i=0;i<3;++i)
    for (int j=0;j<LINE;++j)
    dout.writeInt(p[i][j]);
    dout.flush();
    dout.close();
    }
    catch(IOException e)
    {
    System.out.println("IO ERROR");

    }
    }
    我就是因为用什么记事本打不开,以为有问题,所以才问的。
    那要怎么样才能保证记事本也可以打开呢。还有个问题在写文件的时候,怎么才能够换行呢?还要等一下结账哦,对不住
      

  3.   

    换行的时候打入一个println就可以了。
      

  4.   

    package filesystembinder;
    import java.io.*;
    import java.util.StringTokenizer;public class Untitled1
    {  public Untitled1()
      {
           String[] dest = new String[100];
           try{
              String fileContent = ReadFile("d:\\a.txt");
              TakeToArrary(fileContent,dest);
              ShowArrayInfo(dest);
           } catch(Exception e) {
           }
      }
      public static void main(String[] args)
      {
          Untitled1 untitled11 = new Untitled1();
      }  private String ReadFile(String fileName) throws IOException {
          File   file = new File(fileName) ;
          int    fileLength = (int) file.length() ;
          int    charRead = 0 ;
          char[] content = new char[fileLength] ;
          FileReader reader = new FileReader(file) ;       while(reader.ready()) {
               charRead = reader.read(content,charRead,fileLength - charRead);
           }      return new String(content,0,fileLength - 1);
      }  private void TakeToArrary(String content, String[] destArr) {
          int  i = 0 ;
          StringTokenizer st = new StringTokenizer(content);
          while (st.hasMoreTokens()) {
              destArr[i++] = st.nextToken() ;
          }
      }  private void ShowArrayInfo(String[] Arr) {
         for(int i=0 ; i< Arr.length ; i ++)
            if(Arr[i].length() != 0) System.out.print(" " + Arr[i])  ;
      }
    }
      

  5.   

    >我就是因为用什么记事本打不开,以为有问题,所以才问的。
    >那要怎么样才能保证记事本也可以打开呢。
    >还有个问题在写文件的时候,怎么才能够换行呢?你是不是想存成文本文件,有格式,可以在记事本里编辑?
    那就用字符流,你得把int i =345 转换为 String i = "345"
    存到文件里,你可以以white space为分割,也就是说 
    空格 tab 回车 都被视作分割符
    如果文件很小,可以一次全读出来,再用StringTokenizer挑出来