Java - 不会读出文件内容

时间:2016-06-30 18:38:45

标签: java bufferedreader filereader

我有一个.txt文件,例如,这个内容:

variable1="hello";
variable2="bye";
testing3="parameter";
whatisthis4="hello";
var5="exampletext";
example=3;
wellthen=8;
---

它在文件中逐行读取,直到我添加了一种保存数据的方式。

这整个代码加上另一个读者(当然还有其他变量名)包含在try-catch语句中。

String path_playlist = new File("").getAbsolutePath();
String fileName_playlist = path_playlist 
        + "/src/dancefusion/game/playlist.txt";
FileReader fr_playlist = new FileReader(fileName_playlist);
BufferedReader br_playlist = new BufferedReader(fr_playlist);

int track_counter = track_sum*9;
String trackinfos[] = new String[track_counter];

while(track_counter < 0)
{
    System.out.println("linecount="+track_counter);
    trackinfos[track_counter] = br_playlist.readLine();
    System.out.println(trackinfos[track_counter]);
    track_counter--;
}
System.out.println(Arrays.toString(trackinfos));

在此示例中,track_sum等于1.

while循环应该一次读取一行文件,但只读取空符号:

[null, null, null, null, null, null, null, null, null]

更新1:

时间条件设置错误...谢谢!

更正后的版本:

while(track_counter < 0)

然而,现在它给了我一个&#34; ArrayOutOfBounds:9&#34;的例外。

任何猜测?

最终更新:

正如@GiorgiMoniava所说,我只需要在开始读入之前将track_counter减少一个,因为在Java数组中以0开头,谢谢!

int track_counter = track_sum*8;
String trackinfos[] = new String[track_counter];

track_counter--;

while(track_counter >= 0)
{
    System.out.println("linecount="+track_counter);
    trackinfos[track_counter] = br_playlist.readLine();
    System.out.println(trackinfos[track_counter]);
    track_counter--;
}

也许你们其中一个人可以弄清楚我做错了什么......

当然,如果需要,我可以提供更多信息/代码! 提前致谢!

2 个答案:

答案 0 :(得分:3)

这看起来很奇怪

while(track_counter < 0)

你确定输入了循环吗?我猜测(从您的输出中)track_counter是9。

关于数组超出范围的异常:如果创建大小为N的数组,则只能使用索引访问它:[0,N-1]

答案 1 :(得分:1)

试试这个

   while(track_counter > 0)
    {
        System.out.println("linecount="+track_counter);
        track_counter--;
        trackinfos[track_counter] = br_playlist.readLine();
        System.out.println(trackinfos[track_counter]);

    }