openFileInput()出错

时间:2013-12-05 15:05:32

标签: java text bufferedreader

我正在尝试阅读文本文件。到目前为止,我已经使用BufferReader获得了代码。但是,如果我使用openFileInput("Storyline.txt"),则会出错:The method openFileInput(String) is undefined for the type Game。现在,我在这里阅读了Activity的内容:Android File I/O openFileInput() undefined。但我必须承认我不太了解它。

这是我写的代码:

package game;

import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.FileInputStream;
import java.io.*;

public class Game {

public static void Start(){
    InputStream instream = openFileInput("Storyline.txt");
    InputStreamReader inputreader = new InputStreamReader(instream);
    BufferedReader buffreader = new BufferedReader(inputreader);

    int numberOfLines, numberOfActions;
    String[] parts;

    String line = null;

    while((line=buffreader.readLine())!=null){
        parts=line.split(";");
        numberOfLines++;
    }
    numberOfActions=numberOfLines;

    while(numberOfActions-numberOfLines < numberOfLines){
        int intOne = Integer.parseInt(parts[0]);
        int intTwo = Integer.parseInt(parts[1]);
        String strLine = parts[2];
    }

}

有人可以帮助我吗?

5 个答案:

答案 0 :(得分:1)

方法openFileInput是为Android Context课程定义的,但不在Game课程中定义。

您似乎没有在这里进行Android开发。在这种情况下,您可以使用:

InputStream instream = new FileInputStream("Storyline.txt");

答案 1 :(得分:0)

您在该课程中没有名为openFileInput的方法,但您正试图将其称为

InputStream instream = openFileInput("Storyline.txt");

此方法应在您的类中定义,在您extends的类中,或者您需要通过在其前面加上

中包含的类实例来限定它。
 classInstance.openFileInput("file");

如果您正在进行Android开发,并且您正在讨论Context中包含的方法,那么您将找到更多信息here。否则,此页面上的其他答案将满足您的需求。

答案 2 :(得分:0)

使用此行

BufferedReader buffreader = new BufferedReader(new FileReader("Storyline.txt"));

而不是..

InputStream instream = openFileInput("Storyline.txt");
InputStreamReader inputreader = new InputStreamReader(instream);
BufferedReader buffreader = new BufferedReader(inputreader);

答案 3 :(得分:0)

您没有定义openFileInput方法,您应该添加一些像这样的东西

public InputStream openFileInput(String filePath) throws FileNotFoundException{

return new FileInputStream(new File(filePath));

}

答案 4 :(得分:0)

您可能需要使用try catch块将调用包装到BufferedReader和InputStream。我相信你需要捕获IOException和FileNotFoundException,但我可能会稍微关闭。