繁体   English   中英

用Java解析文本文件

[英]Parse Text file in Java

我正在尝试从文本文件中读取输入(只读arraylist中的数字)。 我的文本文件看起来像这样包含数字(146,7,-1,-2,3)。实际上看起来像这样:HEADER 1467-1-23

现在,当我在文件中放入HEADER字符串时,我的代码将无法读取第一个数字146(以我的情况为开头),第二个数字为“ 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++;


     }

是否需要有关如何更改代码以读取第一个数字的建议? 提前致谢

该文件如下所示:

HEADER
146
7
1
23

然后尝试if(numberOfLine > 0) 这是因为您开始从零开始计数。

使用String的split函数分割行

String [] numbers = aLine.split(",");

这将为您提供数组中的所有数字。

我希望它能解决您的查询!

典型> vs. >=错字。 只需将if(numberOfLine > 1)更改为if(numberOfLine >= 1)

该文件看起来像这样吗?

HEADER 1467-1-23

如果这样,请给出第二行的示例。 因为这是id = 0的一行; 还是这样?

HEADER
1467-1-23
...

更改您的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++;


     }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM