Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
输入尝试读取java文件失败_Java - Fatal编程技术网

输入尝试读取java文件失败

输入尝试读取java文件失败,java,Java,你能帮我解决这个问题吗 我正在开发一个android应用程序,我需要一个可以从类中读取的文件。其代码如下: FileInputStream fis = null; String collected = null; try { fis = openFileInput(title); Log.d("FileP

你能帮我解决这个问题吗 我正在开发一个android应用程序,我需要一个可以从类中读取的文件。其代码如下:

                FileInputStream fis = null;
                String collected = null;

                try {
                        fis = openFileInput(title);
                        Log.d("FilePATH", path + "/" + title);
                        byte[] dataArray = new byte[fis.available()];
                        while(fis.read(dataArray) != -1){
                                collected = new String(dataArray);
                        }
                } catch (FileNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } finally {
                        try {

                                fis.close();
                                textData.setText(collected);
                        } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                }
它无法进入try,然后在fis.close()处引发异常。 我能做些什么来解决这个问题

堆栈跟踪

03-17 10:59:12.888: E/AndroidRuntime(15142): FATAL EXCEPTION: main
03-17 10:59:12.888: E/AndroidRuntime(15142): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.victwo/com.example.victwo.NewNoteActivity}: java.lang.NullPointerException
03-17 10:59:12.888: E/AndroidRuntime(15142):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
03-17 10:59:12.888: E/AndroidRuntime(15142):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
03-17 10:59:12.888: E/AndroidRuntime(15142):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
03-17 10:59:12.888: E/AndroidRuntime(15142):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
03-17 10:59:12.888: E/AndroidRuntime(15142):    at android.os.Handler.dispatchMessage(Handler.java:99)
03-17 10:59:12.888: E/AndroidRuntime(15142):    at android.os.Looper.loop(Looper.java:123)
03-17 10:59:12.888: E/AndroidRuntime(15142):    at android.app.ActivityThread.main(ActivityThread.java:3683)
03-17 10:59:12.888: E/AndroidRuntime(15142):    at java.lang.reflect.Method.invokeNative(Native Method)
03-17 10:59:12.888: E/AndroidRuntime(15142):    at java.lang.reflect.Method.invoke(Method.java:507)
03-17 10:59:12.888: E/AndroidRuntime(15142):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-17 10:59:12.888: E/AndroidRuntime(15142):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-17 10:59:12.888: E/AndroidRuntime(15142):    at dalvik.system.NativeStart.main(Native Method)
03-17 10:59:12.888: E/AndroidRuntime(15142): Caused by: java.lang.NullPointerException
03-17 10:59:12.888: E/AndroidRuntime(15142):    at com.example.victwo.NewNoteActivity.onCreate(NewNoteActivity.java:66)
03-17 10:59:12.888: E/AndroidRuntime(15142):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
03-17 10:59:12.888: E/AndroidRuntime(15142):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
03-17 10:59:12.888: E/AndroidRuntime(15142):    ... 11 more
第一个异常(内部尝试)

只显示代码,它不会无法进入try,它可能会在发生任何事情之前在try中抛出异常,即

fis=openFileInput(title)

可能是抛出一个,然后跳入
捕捉
然后是
最后

第二个异常(最终内部)

finally you see中的异常是由
fis
null
引起的,在尝试对其执行操作之前,只需对其进行null检查

 if (fis != null)
 {
   fis.close();
 }
这是因为
close()

另外

如果您使用的是Java7,我建议您放弃finally,使用try with resources,这样您就不需要处理它导致的关闭和异常

try (FileInputStream fis = openFileInput(title))
{
//your code and catches
}
//no finally block required
然后再设置文本

textData.setText(collected);

可以发布stacktrace吗?fis.close()可能会失败,因为无法初始化fis,因此fis为空。关闭前只需检查null。@AskThakare如何知道
openFileInput(title)
还没有这样做吗?我们看不到日志,
openFileInput
按照您的建议在Java 6上运行。我可以在那里做什么?我已经更新了我的答案,你也可以添加堆栈跟踪吗?我猜
newnoteivity
中的第66行是
fis=openFileInput