Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.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_Readfile - Fatal编程技术网

Java:从文件中读取整数数组

Java:从文件中读取整数数组,java,arrays,readfile,Java,Arrays,Readfile,假设我有一个名为“input.txt”的文件,其中包含一组正整数: 6 5 6 8 6 2 4 以此类推……(每行一个整数) 我想读取此文件并将其放入数组。第一个整数(在本例中为6)表示数组中索引或元素的数量,因此为6个点。其他数字填充从0开始的数组。所以在索引0处,数字是5,在索引1处,数字是6,依此类推 有人能告诉我如何读取这个文件并将其放入一个名为A的数组中,然后将每个索引中的整数返回为n吗 这就是我到目前为止所做的: import java.io.*; public class inp

假设我有一个名为
“input.txt”
的文件,其中包含一组正整数:

6
5
6
8
6
2
4
以此类推……(每行一个整数)

我想读取此文件并将其放入数组。第一个整数(在本例中为6)表示数组中索引或元素的数量,因此为6个点。其他数字填充从0开始的数组。所以在索引0处,数字是5,在索引1处,数字是6,依此类推

有人能告诉我如何读取这个文件并将其放入一个名为A的数组中,然后将每个索引中的整数返回为n吗

这就是我到目前为止所做的:

import java.io.*;
public class inputFile {
    public static jobScheduleRecursive(int[] A, int i)
    {
        try
    {
        FileReader filereader = new FileReader("input.txt");
        BufferedReader bufferedreader = new BufferedReader(filereader);
        String line = bufferedreader.readLine();
        //While we have read in a valid line
        while (line != null) {
            //Try to parse integer from the String line
            try {
                System.out.println(Integer.parseInt(line));
            } catch (NumberFormatException nfe) {
                System.err.println("Failed to parse integer from line:" + line);
                System.err.println(nfe.getMessage());
                System.exit(1);
            }
            line = bufferedreader.readLine();
        }
    }
    catch(FileNotFoundException filenotfoundexception)
    {
        System.out.println("File not found.");
    }
    catch(IOException ioexception)
    {
        System.out.println("File input error occured!");
        ioexception.printStackTrace();
    }
    return A;
}
我想我做错了什么。请提供帮助。

使用a和方法,您只需几行即可解决此问题:

Scanner s = new Scanner(new File("input.txt"));
int[] array = new int[s.nextInt()];
for (int i = 0; i < array.length; i++)
    array[i] = s.nextInt();
Scanner s=新的扫描仪(新文件(“input.txt”);
int[]数组=新的int[s.nextInt()];
for(int i=0;i
我想,对于类似ACM的比赛,您需要这个:)我使用以下模板:

import java.io.*;
import java.util.*;      

public class Task {

    private BufferedReader input;
    private PrintWriter output;
    private StringTokenizer stoken;

    String fin = "input";
    String fout = "output";


    private void solve() { // some solving code...
        int n = nextInt();
        int[] mas = new int[n];
        for (int i = 0; i<n; i++){
            mas[i] = nextInt();
        }
    }



    Task() throws IOException {
        input = new BufferedReader(new FileReader(fin + ".txt"));
        output = new PrintWriter(new FileWriter(fout + ".txt"));

        solve();

        input.close();
        output.flush();
        output.close();
    }


    int nextInt() {
        return Integer.parseInt(nextToken());
    }


    long nextLong() {
        return Long.parseLong(nextToken());
    }


    double nextFloat() {
        return Float.parseFloat(nextToken());
    }


    double nextDouble() {
        return Double.parseDouble(nextToken());
    }


    String nextToken() {
        while ((stoken == null) || (!stoken.hasMoreTokens())) {
            try {
                String line = input.readLine();
                stoken = new StringTokenizer(line);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return stoken.nextToken();
    }


    public static void main(String[] args) throws IOException {
        new Task();
    }

}
import java.io.*;
导入java.util.*;
公开课任务{
专用缓冲读取器输入;
专用打印机输出;
斯托克私人酒店;
字符串fin=“输入”;
字符串fout=“输出”;
private void solve(){//某些解决代码。。。
int n=nextInt();
int[]mas=新的int[n];
对于(inti=0;i
import java.io.File;
导入java.io.FileNotFoundException;
导入java.util.Scanner;
公共类文件{
公共静态void main(字符串[]args)引发FileNotFoundException{
文件f=新文件(“l.txt”);
扫描器b=新扫描器(f);
int[]arr=newint[b.nextInt()];
对于(int i=0;i
Java8+

int[] ints = Files.lines(Paths.get("input.txt"))
                  .mapToInt(Integer::parseInt).toArray();

如果文件是
类路径
资源:

int[] ints = Files
            .lines(Paths.get(ClassLoader.getSystemResource("input.txt")
                    .toURI())).mapToInt(Integer::parseInt).toArray();
从文件打印内容:

 Arrays.stream(ints).forEach(System.out::println);

如果使用列表结构来存储数字,则不必将条目数放在第一行。一旦通过调用List.toArray()完成读取,就可以轻松地将列表转换为数组(固定长度)可能会有更快的解决方案。在分析应用程序并确定瓶颈之前,我不会研究这些解决方案。在获取阵列大小的长度时,是否已将扫描仪移到下一行?然后填充阵列时,它将从下一行的第二行开始file@Bartzilla是的,那就是OP想要的,不是吗确实如此!您还可以使用Files.lines(path.get(“input.txt”)).mapToInt(Integer::parseInt).boxed()来获取非原语列表。
 Arrays.stream(ints).forEach(System.out::println);