如何在读取文本文件后创建数组

时间:2014-12-04 06:08:50

标签: java arrays io

package telephonenumber;

import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;

public class TelephoneNumber 
{

public static void main(String[] args) 
{
  Scanner k = new Scanner(System.in);
  System.out.println("Enter name of file to read (format: fileName.txt)");
  String fileName = k.nextLine();

  Scanner ipStream = null;
/////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////   
  try
  {
      ipStream = new Scanner(new File (fileName));

  }
  catch(IOException bad)
  {
              System.out.println("Error opening the file for read:" + fileName);
              System.exit(0);
  }
/////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////

  while(ipStream.hasNextLine())//file is located
  {
      String dataLine = ipStream.nextLine();
      dataLine.split("  ");
      String zero = line[0];
      String one = line[1];
      String two = line[2];
      String three = line[3];
      String four = line[4];
      System.out.println(line[0]);;

  }



  System.out.println("End of file reached");
  ipStream.close();
}

}

我的文本文件是一系列数字,如下所示:

  • 155 156 8604
  • 160 077 1405
  • 774 512 5423
  • 832 105 6993
  • 774 563 9912

子弹不在文本文件中。它只是一行一行。


如何使每行数字成为一个数组?

2 个答案:

答案 0 :(得分:0)

您应该将split的返回值分配给数组:

String[] line = dataLine.split("  ");

答案 1 :(得分:0)

如果您想将每一行添加为元素,则应该查看ArrayList而不是array,因为您不需要担心array的大小。你可以尝试如下

Scanner sc=new Scanner(new File (fileName));
List<String> list=new ArrayList<>();
while(sc.hashNextLine()){
  list.add(sc.nextLine());
}

现在您的List包含所有行。如果我使用List的元素,它将是155 156 8604。现在,如果您希望按" "拆分并获取每个号码,可以尝试按照

List<String> numbers=new ArrayList<>();
for(String i:list){  
   numbers.addAll(Arrays.asList(i.split(" ")));
}