替代读取文件方法

时间:2014-02-24 00:09:18

标签: java arrays file store

我在存储文件中的值时遇到问题。

3
10 2
100 35
5 4
17 20 3 5
6 10
6 9 12 15 18 21 24 27 30 33

我希望将第一行存储为整数,将其他行存储为多个值作为单独的int数组。

    BufferedReader br = null;
    try {
        String sCurrentLine;
        br = new BufferedReader(new FileReader("candy.dat"));
        while ((sCurrentLine = br.readLine()) != null) {
            System.out.println(sCurrentLine);
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (br != null)br.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

还有其他办法吗?感谢

编辑:基本上第一个整数(在本例中为3)将表示要遵循的测试用例数。每个测试用例后面都会有两行。所以第一个测试用例是[10,2] [100,35]。

EDIT2:如果有人在想,我设法解决了我的问题。 这是我的代码

    Scanner sc = new Scanner(new File("candy.dat"));
    String testCase = sc.nextLine();
    String[] numOfCandy = new String[0];
    String[] NK = new String[0];

    for (int i = 0; i < Integer.parseInt(testCase); i++) {
        System.out.println("test case " + (i+1));
        NK = sc.nextLine().split(" ");
        numOfCandy = sc.nextLine().split(" ");

        //System.out.println(NK[0] + " " + NK[1]);
        //System.out.println(numOfCandy[0] + " " + numOfCandy[1]);

        find(NK[0], NK[1], numOfCandy); //method to solve problem
    }

我首先存储了testcase值,即3,告诉for循环运行多少次。

我实例化了2个String数组供以后使用。

在for循环中,我读取下一行并将其拆分为存储到字符串数组NK中,然后将其存储到numOfCandy中。

从那里,我能够成功地从数组中检索数据来解决我的问题。

1 个答案:

答案 0 :(得分:0)

回答,现在,没有时间,没有大脑......很酷的态度:`

public static void main() throws Exception {
    final Scanner scanner = new Scanner(new File(file_str));
    while (scanner.hasNextLine()) {
        if (scanner.hasNextInt()) {
            final int nb = scanner.nextInt();
            System.err.println(nb);
            final String[] str = scanner.findInLine(".*").split(" ");
            System.err.println("-----" + str);
        }

    }
    System.err.println("END");
    scanner.close();
}