我正在尝试从文本文件中读取输入(只读arraylist中的数字)。我的文本文件看起来像包含数字(146,7,-1,-2,3)。它实际上是这样的: HEADER 1467年1月23日
现在,当我在文件中放入HEADER字符串时,我的代码将不会读取第一个数字,在我的情况下是146,并以第二个数字#34; 7"开始。但是,当字符串HEADER是不存在,146也被阅读,这显然是我想要的。我的代码是这样的:
String pathToWrite="C:\\Users\\User\\Desktop\\Hello.txt";
FileReader fr=new FileReader(pathToWrite);
BufferedReader bufferedReader=new BufferedReader(fr);
String aLine=null;
int numberOfLine=0;
List<Integer> list = new ArrayList<Integer>();
List<Integer> list2 = new ArrayList<Integer>();
while((aLine=bufferedReader.readLine()) != null )
{
if(numberOfLine > 1) //since header lies in first line,I want to skip that line
{
list.add(Integer.parseInt(aLine));
}
numberOfLine++;
}
想要了解如何更改代码以读取第一个数字的建议吗? 提前致谢
答案 0 :(得分:1)
该文件如下:
HEADER
146
7
1
23
?然后尝试if(numberOfLine > 0)
。这是因为你开始从零开始计算。
答案 1 :(得分:0)
使用String的分割功能
分割你的线String [] numbers = aLine.split(",");
这将为您提供数组中的所有数字。
我希望它可以解决您的疑问!!!
答案 2 :(得分:0)
典型的>
与>=
错字。只需将if(numberOfLine > 1)
更改为if(numberOfLine >= 1)
即可。
答案 3 :(得分:0)
该文件是这样的吗?
HEADER 1467-1-23
如果是这样的话,举一个第二行的例子。因为这是id = 0的一行; 或者像这样?
HEADER
1467-1-23
...
答案 4 :(得分:0)
更改您的if语句或numberOfLine = 0;变量。您可以执行以下操作之一
案例1:
int numberOfLine=0;
while((aLine=bufferedReader.readLine()) != null )
{
if(numberOfLine >= 1) //since header lies in first line,I want to skip that line
{
list.add(Integer.parseInt(aLine));
}
numberOfLine++;
}
=============================================== =============
案例2:
int numberOfLine=1;
while((aLine=bufferedReader.readLine()) != null )
{
if(numberOfLine > 1) //since header lies in first line,I want to skip that line
{
list.add(Integer.parseInt(aLine));
}
numberOfLine++;
}