数组:输入数据

时间:2013-12-05 10:58:22

标签: java arrays

此方法假设要求用户提供已创建的包含数字列表的文件名,如果文件不存在,则必须让用户知道。我无法弄清楚如何将文件中的数字分配给新数组?

public static int[] inputData() throws IOException
{
      int count = 0;
      System.out.print("enter input filename: ");
      File myFile = new File("input.txt");

      if(!myFile.exists())
      {
         System.out.print("file does not exist ");
         System.exit(0);
      }
      Scanner inputFile = new Scanner(myFile);
      while(inputFile.hasNext() && count < ARRAY_SIZE)
         {
             array[count++] = input.nextInt();
         }    
      return array[];
   }

2 个答案:

答案 0 :(得分:1)

您需要学习如何声明和分配一个新数组,您将传回去。它看起来像是一个int的数组,当你打电话给ARRAY_SIZE时,你会把它变成一定的大小(已在某处定义new?)。请参阅official tutorial on arrays

(注意,在数组的for循环中使用外部上限通常是一个坏主意。该数组带有内置的length,您可以使用它是正确的大小。)

答案 1 :(得分:-1)

你在哪里定义变量数组?

你的问题是,你不知道你需要多大的数组。最好的选择是使用ArrayList,因为这允许动态调整大小。 (因此它需要是整数列表而不是整数)

public static Integer[] inputData() throws IOException
{
  List<Integer> fileData = new ArrayList<Integer>();
  int count = 0;
  System.out.print("enter input filename: ");
  File myFile = new File("input.txt");
  if(!myFile.exists())
  {
     System.out.print("file does not exist ");
     System.exit(0);
  }
  Scanner inputFile = new Scanner(myFile);
  while(inputFile.hasNext())
  {
     fileData.add(inputFile.nextInt());
  }    
  return fileData.toArray(new Integer[fileData.size()]);
}