将文件读入2D数组?

时间:2014-10-03 02:14:50

标签: java arrays

所以我试图按字节读取文本文件,然后读取它的char。 但我正试图将它插入一个2D阵列,这是ankoshh。

感谢任何帮助:)

public class SteamOutputToFile 
{


public static void main(String [] args)
    {
        int row;
        int col;
        String [][] ankoshh = new String[row][col];
        try{
        InputStream inputstream = new FileInputStream("E:\\testing.txt");

    int data = inputstream.read();
    while(data != -1) {
      //do something with data...
      System.out.print((char)data);

      data = inputstream.read();
    }
    }
    catch (IOException ioexception){
        System.out.println("File input error occured!");
        ioexception.printStackTrace();
    }
    for (int i=0; i<ankoshh.length;i++)
    {
        for (int j=0; j<ankoshh[i].length;j++)
        {
            ankoshh[row][col] = (char)data[i];
        }

1 个答案:

答案 0 :(得分:0)

Apache common-io极大地帮助您做到这一点,没有必要使用FileInputStream。

import java.io.File;
import java.io.IOException;
import java.util.List;

import org.apache.commons.io.FileUtils;

public class Test
{
   public static void main(String [] args) throws IOException
   {
      File file = new File (args[0]);
      List<String> lines = FileUtils.readLines (file);

      String[][]ankoshh = new String [lines.size ()][];

      int line_index=0;
      for (String line:lines)
      {
         String[] caracters = line.split("(?!^)");
         ankoshh[line_index++] = caracters;
      }
   }
}

如果文件非常大,你也可以使用line iterator:

LineIterator it=FileUtils.lineIterator (file);
while (it.hasNext ())
...

希望这有帮助。

干杯,

佛瑞德