如何跳过文件的第一行?

时间:2019-09-13 04:34:20

标签: java file

我从文件中读取并存储在数组中,文件的第一行仅包含“ 1”,而从第二行开始则包含与空格键分开的字典单词。那么如何从第二行读取文件?

try
        {
         File text = new File ("dictionary.txt");
         Scanner file = new Scanner(new File("dictionary.txt"));

         while(file.hasNextLine())
         {
          System.out.println("Level 1");
           int level1 = file.nextInt();
           file.nextLine();



           for(int i = 1; i < 7; i++)
            {
             String [] array = content.split(" ");

             String A = array[0];
             String B = array[1];
             String C = array[2];

            System.out.println(B);
           }
         }
         file.close();
        }

文件格式为

1

蚂蚁是袋子谁和汽车哭泣做动物园的狗耳朵 我妈妈吃的是眼胖爸爸赢的乐趣去得到

2 个答案:

答案 0 :(得分:1)

只需使用计数器

function updateChart(event){
    myChart.data.labels = event.target.value;
    myChart.update();
}

答案 1 :(得分:0)

我实际上会使用text而不是重新定义File来构造Scanner。最好使用try-with-Resources显式关闭Scanner。实际分配content,不要为数组迭代硬编码“魔术值”。基本上像

File text = new File("dictionary.txt");
try (Scanner file = new Scanner(text)) {
    if (file.hasNextLine()) {
        file.nextLine(); // skip first line.
    }
    while (file.hasNextLine()) {
        String content = file.nextLine();
        if (content.isEmpty()) {
            continue; // skip empty lines
        }
        String[] array = content.split("\\s+");
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }
} catch (Exception e) {
    e.printStackTrace();
}

如果使用Java 8+,另一种选择是使用Files.lines(Path)来流式传输所有行(和skip(1)),如

File text = new File("dictionary.txt");
try {
    Files.lines(text.toPath()).skip(1).forEach(content -> {
        if (!content.isEmpty()) {
            System.out.println(Arrays.toString(content.split("\\s+")));
        }
    });
} catch (IOException e) {
    e.printStackTrace();
}