Java 数组:输入数据

Java 数组:输入数据,java,arrays,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.ex

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

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[];
   }
public static int[]inputData()引发IOException
{
整数计数=0;
System.out.print(“输入文件名:”);
File myFile=新文件(“input.txt”);
如果(!myFile.exists())
{
System.out.print(“文件不存在”);
系统出口(0);
}
扫描仪输入文件=新扫描仪(myFile);
while(inputFile.hasNext()&&count
您需要学习如何声明和分配一个新数组,并将其传递回去。它看起来将是一个
int
数组,当您调用
new
时,您将使其具有一定的大小(是否已在某处定义了
array\u size
)。看


(需要注意的是,在数组上的
循环中使用外部上限通常不是一个好主意。该数组带有内置的
长度
,您可以使用该长度将始终是正确的大小。)

您在哪里定义变量数组

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

公共静态整数[]inputData()引发IOException
{
List fileData=new ArrayList();
整数计数=0;
System.out.print(“输入文件名:”);
File myFile=新文件(“input.txt”);
如果(!myFile.exists())
{
System.out.print(“文件不存在”);
系统出口(0);
}
扫描仪输入文件=新扫描仪(myFile);
while(inputFile.hasNext())
{
add(inputFile.nextInt());
}    
返回fileData.toArray(新整数[fileData.size()]);
}

到目前为止它是如何失败的?是我缺少了一段代码,还是你从来没有声明过数组,你可以使用int[]array=new array[size]来声明数组,其中size是数组的大小。这并不能真正回答提问者的问题,这是关于专门学习使用数组的问题(看起来像是一个类).我理解这个问题的方式是“我需要将这些数字放入一个数组”,这就是我向他们展示的方法。它们最终得到一个基于文件输入的整数数组。这怎么不能回答这个问题呢?(这让我问你为什么否决了这个…)很公平,如果编辑允许,我会删除否决票,但这个问题似乎是为了教OP使用Java数组语法。此外,您返回的是一个
整数[]
,而不是一个
整数[]
,这可能与作业相关。谢谢。问题是关于他们试图做什么有点模糊,无论是学习数组,还是实现目标。我想我们的理解不同。我确实提到,由于使用了一个列表,它将是一个整数列表,而不是整数列表,并且更改了数组以匹配(部分原因是我太懒了,没有自己编写循环来转换它们…)。当然,您可以真正地离开深层,使用Java 8 lambda来转换。。。
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()]);
}