try/catch之后的Java返回类型

Den*_*rom 0 java android return try-catch

我想从我创建的方法返回String类型的数据.Eclipse说需要在try catch块之后指定一个返回类型...当我这样做时,Eclipse然后告诉我,我需要将String数据声明为Local变量......这里出了什么问题?

private String ReadData() {
    try {
        FileInputStream fis = null;
        InputStreamReader isr = null;
        String data = null;
        fis = KVOContact.this.openFileInput("data.txt");
        isr = new InputStreamReader(fis);
        char[] inputBuffer = new char[fis.available()];
        isr.read(inputBuffer);
        data = new String(inputBuffer);
        isr.close();
        fis.close();

    } catch (IOException ioe) {
        Log.e("KVOContact", "IOError" + ioe);
    }
    return data;
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 8

你在街data区内宣布try.它超出了该块之外的范围.

可以将声明移到try块之前- 但我个人认为catch完全删除块可能更有意义,并声明该方法可以抛出IOException.你也应该关闭你的FileInputStream和你InputStreamReaderfinally块,以便在抛出异常时不要让它们保持打开状态.