我从文件中读取并存储在数组中,文件的第一行仅包含“ 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
蚂蚁是袋子谁和汽车哭泣做动物园的狗耳朵 我妈妈吃的是眼胖爸爸赢的乐趣去得到
答案 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();
}