java - android中找不到文件异常

标签 java android filenotfoundexception

当我在 main 中将这段代码作为普通 java 应用程序运行时,它运行良好。但是当我尝试在其中一项 Activity 的 onCreate 中使用相同的代码时,它会说文件未找到异常,并且在 logcat 中不打印任何内容。我已经尝试了所有可能的方法,但不知道问题的原因是什么。同样在 logcat 中,消息类似于 filenotfound 异常:/D:/android/Suyesh.2DV106.Assignment3/southern_cities.txt (没有这样的文件或目录) 。是因为前导正斜杠/D:/.. 但我没有把它放在那里,当我尝试打印路径时,它不包含 D 前面的/。但是当我打印绝对路径时,它包含/D 。这里有什么问题吗?我还有我的 list 文件,如下所示。

public class TheCityMap extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    try {
        String strFile = Environment.getExternalStorageDirectory() +"/android/Suyesh.2DV106.Assignment3/southern_cities.txt";
        BufferedReader br = new BufferedReader(new FileReader(strFile));
        String strLine = null;
        StringTokenizer st = null;
        int lineNumber = 0, tokenNumber = 0;
        while( (strLine = br.readLine()) != null){
            lineNumber++;
            st = new StringTokenizer(strLine, ",");
            while(st.hasMoreTokens()){
                tokenNumber++;
                System.out.println("Line # " + lineNumber +", Token # " + tokenNumber+ ", Token : "+ st.nextToken());
            }
            tokenNumber = 0; 

        }
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
        }    

}

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="assignment3.demos"
  android:versionCode="1"
  android:versionName="1.0">
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".MainListActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name="TheCityMap"></activity>
    <uses-library android:name="com.google.android.maps"/>
    <uses-permission android:name="android.permission.INTERNET" > </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" > </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" > </uses-permission>
</application>

最佳答案

Android 基于 Linux,所以像“D:”这样的东西永远不应该工作。

如果文件位于 SD 卡上,请尝试以下操作:

String strFile = Environment.getExternalStorageDirectory() + "/android/Suyesh.2DV106.Assignment3/southern_cities.txt";

最后你的路径应该是这样的:
“/mnt/sdcard/android/Suyesh.2DV106.Assignment3/southern_cities.txt”

关于java - android中找不到文件异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7650301/

相关文章:

asp.net - ASP.NET 中的 C++/CLI 组件出现 "module could not be found"错误

java调用应用程序无法与WCF服务通信

Java:如何根据文件创建数组列表

android - 我正在使用 RecyclerView,如何向它添加 Intent?

android - adb:从 adb shell 中查找 PID

java FileNotFoundException 不会在同一项目中定位文件

java - ListView 中的 Android 日期格式

java - 如何在 Spring boot 下运行的 REST Controller 中获取与 HTTPS 请求相关的 SSL 证书(X.509)?

android - 插入新的原始联系人时强制创建新联系人

python - python中的异常错误处理在指定不执行后吐出错误