使用java获取文件的第一行

使用java获取文件的第一行,java,file,Java,File,我试图用java获取文件的第一行,但我不确定它为什么不工作,或者为什么会出现错误。这是我第一次在java中尝试这种方法 错误 代码 import java.io.BufferedInputStream; 导入java.io.DataInputStream; 导入java.io.FileInputStream; 导入java.io.IOException; 导入java.io.File; 导入java.io.FileNotFoundException; 公共类getSum{ 公共静态void ma

我试图用java获取文件的第一行,但我不确定它为什么不工作,或者为什么会出现错误。这是我第一次在java中尝试这种方法

错误

代码

import java.io.BufferedInputStream;
导入java.io.DataInputStream;
导入java.io.FileInputStream;
导入java.io.IOException;
导入java.io.File;
导入java.io.FileNotFoundException;
公共类getSum{
公共静态void main(字符串[]args){
File File=新文件(“path/InputArray.txt”);
FileInputStream fis=null;
BufferedInputStream bis=null;
DataInputStream dis=null;
字符串行=null;
试一试{
fis=新文件输入流(文件);
bis=新的缓冲数据流(fis);
dis=新数据输入流(bis);
while(dis.available()!=0){
line=dis.readLine();
}
}catch(filenotfounde异常){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
String[]splitLine=line.split(\\s+);
int[]number=新int[splitLine.length];
对于(int i=0;i
看看这个:

int[] numbers = new int[splitLine.length];
for(int i = 0; i< line.length(); i++){
    try{
        numbers[i] = Integer.parseInt(splitLine[i]);
    }catch(NumberFormatException nfe){};
}
在这一点上,由于
数字
分割线
的长度相同,您肯定不会得到
阵列索引边界外异常

看看这个:

int[] numbers = new int[splitLine.length];
for(int i = 0; i< line.length(); i++){
    try{
        numbers[i] = Integer.parseInt(splitLine[i]);
    }catch(NumberFormatException nfe){};
}

在这一点上,由于
数字
分割线
的长度相同,您肯定不会得到
数组索引超出边界异常
,我认为您的for循环条件是错误的。我认为您应该检查分割线.length()

for(int i=0;i
我认为您的for循环条件是错误的。我认为您应该检查splitLine.length()

for(int i=0;i
产生此错误的行是什么?@CyrilleKarmann显然是
number[i]=Integer.parseInt(splitLine[i])
您是否尝试在调试器中运行此操作,并查看拆分后的数据外观?请不要在未经处理的情况下捕获NFE。产生此错误的行是什么?@CyrilleKarmann显然是
number[i]=Integer.parseInt(拆分行[i])
您是否已尝试在调试器中运行此功能,并查看拆分后的数据外观?请不要在未经处理的情况下捕获NFE。
int[] numbers = new int[splitLine.length];
for(int i = 0; i< line.length(); i++){
    try{
        numbers[i] = Integer.parseInt(splitLine[i]);
    }catch(NumberFormatException nfe){};
}
for (int i = 0; i< splitLine.length; i++) {
for(int i = 0; i< splitLine.length(); i++){
     try{
          numbers[i] = Integer.parseInt(splitLine[i]);
     }catch(NumberFormatException nfe){};
}