在Android中打开txt文件时出错-找不到文件

在Android中打开txt文件时出错-找不到文件,android,filenotfoundexception,Android,Filenotfoundexception,在ModificateSera活动中,我将一些数据保存在txt文件中,效果良好。 在MainActivity中,我必须读取此数据,但我无法读取,因为每次尝试打开txt文件时,我都会遇到以下错误: java.io.FileNotFoundException:/data/data/appname/files/data.txt:open failed:enoint(没有这样的文件或目录) 这是我用来打开和读取文件的代码: MainActivity.java try { InputStrea

在ModificateSera活动中,我将一些数据保存在txt文件中,效果良好。 在MainActivity中,我必须读取此数据,但我无法读取,因为每次尝试打开txt文件时,我都会遇到以下错误:

java.io.FileNotFoundException:/data/data/appname/files/data.txt:open failed:enoint(没有这样的文件或目录)

这是我用来打开和读取文件的代码:

MainActivity.java

try
{

     InputStream inputPosizione = openFileInput("PosizioniTessereUtente.txt");
     InputStream inputCodici = openFileInput("CodiciTessereUtente.txt");


    if(inputPosizione != null)
    {
        InputStreamReader streamPosizione = new InputStreamReader(inputPosizione);
        InputStreamReader streamCodici = new InputStreamReader(inputCodici);

        BufferedReader bufferPosizione = new BufferedReader(streamPosizione);
        BufferedReader bufferCodici = new BufferedReader(streamCodici);

        Integer pos = null;
        String cod = null;
        while((pos = Integer.parseInt(bufferPosizione.readLine())) != null)
        {

            cod = bufferCodici.readLine();
            Tessera tmp = new Tessera(negozi.tessereDefault.get(pos).getNome(),
                    negozi.tessereDefault.get(pos).getLogo());
            tmp.setCodice(cod);

            tessereUtente.add(tmp);
        }
        bufferPosizione.close();
        bufferCodici.close();
    }
}
catch (IOException e) {
    e.printStackTrace();
}
OutputStreamWriter out;
try {

out = new OutputStreamWriter(openFileOutput("PosizioneTessereUtente.txt", MODE_APPEND));

String pos = Integer.toString(posizione);
Log.v("posizione",pos);
out.write(pos);
out.write('\n');
out.close();

Log.v("codice",codice);
out = new OutputStreamWriter(openFileOutput("CodiciTessereUtente.txt", MODE_APPEND));
out.write(codice);
out.write('\n');
out.close();

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在这里,我写的是TXT文件

修改sera.java

try
{

     InputStream inputPosizione = openFileInput("PosizioniTessereUtente.txt");
     InputStream inputCodici = openFileInput("CodiciTessereUtente.txt");


    if(inputPosizione != null)
    {
        InputStreamReader streamPosizione = new InputStreamReader(inputPosizione);
        InputStreamReader streamCodici = new InputStreamReader(inputCodici);

        BufferedReader bufferPosizione = new BufferedReader(streamPosizione);
        BufferedReader bufferCodici = new BufferedReader(streamCodici);

        Integer pos = null;
        String cod = null;
        while((pos = Integer.parseInt(bufferPosizione.readLine())) != null)
        {

            cod = bufferCodici.readLine();
            Tessera tmp = new Tessera(negozi.tessereDefault.get(pos).getNome(),
                    negozi.tessereDefault.get(pos).getLogo());
            tmp.setCodice(cod);

            tessereUtente.add(tmp);
        }
        bufferPosizione.close();
        bufferCodici.close();
    }
}
catch (IOException e) {
    e.printStackTrace();
}
OutputStreamWriter out;
try {

out = new OutputStreamWriter(openFileOutput("PosizioneTessereUtente.txt", MODE_APPEND));

String pos = Integer.toString(posizione);
Log.v("posizione",pos);
out.write(pos);
out.write('\n');
out.close();

Log.v("codice",codice);
out = new OutputStreamWriter(openFileOutput("CodiciTessereUtente.txt", MODE_APPEND));
out.write(codice);
out.write('\n');
out.close();

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这是LogCat错误:

01-21 19:19:29.529: W/System.err(31592): java.io.FileNotFoundException:
/data/data/com.activity.cardsnuovo/files/PosizioniTessereUtente.txt: open failed: ENOENT (No such file or directory)
01-21 19:19:29.529: W/System.err(31592): at libcore.io.IoBridge.open(IoBridge.java:456)
01-21 19:19:29.529: W/System.err(31592): at java.io.FileInputStream.<init>(FileInputStream.java:76)
01-21 19:19:29.529: W/System.err(31592): at android.app.ContextImpl.openFileInput(ContextImpl.java:955)
01-21 19:19:29.529: W/System.err(31592): at android.content.ContextWrapper.openFileInput(ContextWrapper.java:175)
01-21 19:19:29.530: W/System.err(31592): at com.activity.cardsnuovo.MainActivity.onCreate(MainActivity.java:91)
01-21 19:19:29.530: W/System.err(31592): at android.app.Activity.performCreate(Activity.java:5933)
01-21 19:19:29.530: W/System.err(31592): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
01-21 19:19:29.530: W/System.err(31592): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
01-21 19:19:29.530: W/System.err(31592): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
01-21 19:19:29.530: W/System.err(31592): at android.app.ActivityThread.access$800(ActivityThread.java:144)
01-21 19:19:29.530: W/System.err(31592): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
01-21 19:19:29.530: W/System.err(31592): at android.os.Handler.dispatchMessage(Handler.java:102)
01-21 19:19:29.530: W/System.err(31592): at android.os.Looper.loop(Looper.java:135)
01-21 19:19:29.530: W/System.err(31592): at android.app.ActivityThread.main(ActivityThread.java:5221)
01-21 19:19:29.530: W/System.err(31592): at java.lang.reflect.Method.invoke(Native Method)
01-21 19:19:29.530: W/System.err(31592): at java.lang.reflect.Method.invoke(Method.java:372)
01-21 19:19:29.530: W/System.err(31592): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:89)
01-21 19:19:29.530: W/System.err(31592): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
01-21 19:19:29.530: W/System.err(31592): Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
01-21 19:19:29.530: W/System.err(31592): at libcore.io.Posix.open(Native Method)
01-21 19:19:29.530: W/System.err(31592): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
01-21 19:19:29.530: W/System.err(31592): at libcore.io.IoBridge.open(IoBridge.java:442)
01-21 19:19:29.530: W/System.err(31592): ... 17 more
01-21 19:19:29.541: D/OpenGLRenderer(31592): Render dirty regions requested: true
01-21 19:19:29.547: D/Atlas(31592): Validating map...
01-21 19:19:29.572: I/Adreno-EGL(31592): <qeglDrvAPI_eglInitialize:410>: QUALCOMM Build: 10/24/14, 167c270, I68fa98814b
01-21 19:19:29.572: I/OpenGLRenderer(31592): Initialized EGL, version 1.4
01-21 19:19:29.585: D/OpenGLRenderer(31592): Enabling debug mode 0
01-21 19:19:29.662: V/RenderScript(31592): Application requested CPU execution
01-21 19:19:29.666: V/RenderScript(31592): 0xa240c400 Launching thread(s), CPUs 4
01-21 19:19:29.529:W/System.err(31592):java.io.FileNotFoundException:
/data/data/com.activity.cardsunovo/files/posizionitessereuente.txt:open failed:enoint(没有这样的文件或目录)
01-21 19:19:29.529:W/System.err(31592):位于libcore.io.IoBridge.open(IoBridge.java:456)
01-21 19:19:29.529:W/System.err(31592):位于java.io.FileInputStream。(FileInputStream.java:76)
01-21 19:19:29.529:W/System.err(31592):位于android.app.ContextImpl.openFileInput(ContextImpl.java:955)
01-21 19:19:29.529:W/System.err(31592):位于android.content.ContextWrapper.openFileInput(ContextWrapper.java:175)
01-21 19:19:29.530:W/System.err(31592):位于com.activity.cardsunovo.MainActivity.onCreate(MainActivity.java:91)
01-21 19:19:29.530:W/System.err(31592):位于android.app.Activity.performCreate(Activity.java:5933)
01-21 19:19:29.530:W/System.err(31592):位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
01-21 19:19:29.530:W/System.err(31592):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
01-21 19:19:29.530:W/System.err(31592):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
01-21 19:19:29.530:W/System.err(31592):在android.app.ActivityThread.access$800(ActivityThread.java:144)
01-21 19:19:29.530:W/System.err(31592):位于android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
01-21 19:19:29.530:W/System.err(31592):位于android.os.Handler.dispatchMessage(Handler.java:102)
01-21 19:19:29.530:W/System.err(31592):位于android.os.Looper.loop(Looper.java:135)
01-21 19:19:29.530:W/System.err(31592):位于android.app.ActivityThread.main(ActivityThread.java:5221)
01-21 19:19:29.530:W/System.err(31592):位于java.lang.reflect.Method.invoke(本机方法)
01-21 19:19:29.530:W/System.err(31592):位于java.lang.reflect.Method.invoke(Method.java:372)
01-21 19:19:29.530:W/System.err(31592):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:89)
01-21 19:19:29.530:W/System.err(31592):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
01-21 19:19:29.530:W/System.err(31592):原因:android.System.ErrnoException:open失败:enoint(没有这样的文件或目录)
01-21 19:19:29.530:W/System.err(31592):位于libcore.io.Posix.open(本机方法)
01-21 19:19:29.530:W/System.err(31592):位于libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
01-21 19:19:29.530:W/System.err(31592):位于libcore.io.IoBridge.open(IoBridge.java:442)
01-21 19:19:29.530:W/系统错误(31592):。。。还有17个
01-21 19:19:29.541:D/OpenGLRenderer(31592):请求渲染脏区域:true
01-21 19:19:29.547:D/地图集(31592):验证地图。。。
01-21 19:19:29.572:I/Adreno EGL(31592)::高通公司制造:10/24/14167C270,I68fa98814b
01-21 19:19:29.572:I/OpenGLRenderer(31592):初始化EGL,版本1.4
01-21 19:19:29.585:D/OpenGLRenderer(31592):启用调试模式0
01-21 19:19:29.662:V/RenderScript(31592):应用程序请求的CPU执行
01-21 19:19:29.666:V/RenderScript(31592):0xa240c400启动线程,CPU 4

我认为文件名不同。你的拼写有误。这就是原因

out = new OutputStreamWriter(openFileOutput("PosizioneTessereUtente.txt", MODE_APPEND));
这里的文件名是posizionetesseretenete.txt

但是这里

InputStream inputPosizione = openFileInput("PosizioniTessereUtente.txt");

您提供的示例(data.txt)与发布的代码无关。在代码引发
异常的地方发布代码片段,发布
LogCat
日志,并指出崩溃的确切位置。我添加了LogCat错误。该文件确实已创建的证据在哪里?您应该将代码发布到写入文件的位置。此外,您还应该打开设备上的路径,并检查该文件是否确实存在。您是否尝试重新安装该项目?还有一个项目->清洁?试试这个,让我知道你以前是否仍然面临这个问题,从ModificateSera到MainActivity的意图起了作用,现在它崩溃了,我不知道原因。你能告诉我你现在得到的异常情况吗?它是另一个,对吗?它是相同的,java.io.FileNotFoundException,open failed:enoint