Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从文件中读取整数到数组_Java_Arrays - Fatal编程技术网

Java 如何从文件中读取整数到数组

Java 如何从文件中读取整数到数组,java,arrays,Java,Arrays,所以,基本上我想学习如何使用方法读取文件整数,并获取要返回的输出数组。有人有什么建议吗 static int[]readFromFile(){ int[]数据=新的int[10]; 试一试{ 文件myObj=新文件(“inputFile.txt”); 扫描仪myReader=新扫描仪(myObj); while(myReader.hasNextLine()){ 对于(int i=0;i

所以,基本上我想学习如何使用方法读取文件整数,并获取要返回的输出数组。有人有什么建议吗

static int[]readFromFile(){
int[]数据=新的int[10];
试一试{
文件myObj=新文件(“inputFile.txt”);
扫描仪myReader=新扫描仪(myObj);
while(myReader.hasNextLine()){
对于(int i=0;i

我希望该代码返回包含文件中所有整数的数组。您有几个问题。一是不能更改数组的大小。如果要调整数组的大小,则必须重新分配新数组并进行复制。 另一个是有两个循环在进行。每次调用while循环都会覆盖包含10个元素的数组

因此,让我们尝试使用ArrayList。ArrayList允许您在末尾动态附加更多项

编辑:您只需要10个整数:

static List<Integer> readFromFile() {
    List<Integer> data = new ArrayList<>();
    try {
        File myObj = new File("inputFile.txt");
        Scanner myReader = new Scanner(myObj);
        while (myReader.hasNext() && data.size() < 10) {
            data.add(myReader.nextInt());
        }
        myReader.close();
    } catch (FileNotFoundException e) {
        System.out.println(" .");
        e.printStackTrace();
    }
    return data;
}
静态列表readFromFile(){
列表数据=新的ArrayList();
试一试{
文件myObj=新文件(“inputFile.txt”);
扫描仪myReader=新扫描仪(myObj);
while(myReader.hasNext()&&data.size()<10){
data.add(myReader.nextInt());
}
myReader.close();
}catch(filenotfounde异常){
系统输出打印项次(“.”);
e、 printStackTrace();
}
返回数据;
}

如果在所有这些结束时,您真的想返回数组而不是列表,那么您可以使用
data

上的
toArray()
方法看起来您已经开始编写一些非常合理的代码了,那么:问题是什么?问题是我需要从文件中读取并获取输出数组,但我只能做什么从txt文件中获取字符串我不知道如何简单地获取整数的所有信息我想你想要返回所有整数,而不仅仅是前10个?在这种情况下,您可以使用列表,并在返回之前将其强制转换为数组。@S.L.Barth-No,我只想从文件中获取10个数字。看起来您的代码就是这样做的。。。怎么了?当您尝试读取文件时会发生什么情况?Java对这类事情最好(也是最差)的贡献是
Java.util.stream.stream
。。。最好的解释是,创建可变长度列表并转换为
数组
非常容易。然而,最糟糕的是,
类流
中的一些方法非常难以理解。。。。为什么不使用
java.util.stream.IntStream.Builder
?这是相同的行数。。。2便士(2美分)。幸好你注意到了嵌套的循环@Dovis,如果这个答案解决了你的问题,你应该点击复选标记。这将表明问题已经解决,并奖励回答者一些好的分数。如果没有,请进一步澄清问题。