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