Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.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 在android中找不到filenot异常_Java_Android_Filenotfoundexception - Fatal编程技术网

Java 在android中找不到filenot异常

Java 在android中找不到filenot异常,java,android,filenotfoundexception,Java,Android,Filenotfoundexception,当我在main中以普通java应用程序的方式运行这段代码时,它运行得很好。但当我尝试在其中一个活动的onCreate中使用相同的代码时,它会显示file not found exception,并且在logcat中不打印任何内容。我已经尝试了所有可能的方法,但不知道问题的原因是什么。在logcat中,消息类似于以下文件NotFound exception:/D:/android/Suyesh.2DV106.Assignment3/southern_cities.txt(无此类文件或目录)。是因为

当我在main中以普通java应用程序的方式运行这段代码时,它运行得很好。但当我尝试在其中一个活动的onCreate中使用相同的代码时,它会显示file not found exception,并且在logcat中不打印任何内容。我已经尝试了所有可能的方法,但不知道问题的原因是什么。在logcat中,消息类似于以下文件NotFound exception:/D:/android/Suyesh.2DV106.Assignment3/southern_cities.txt(无此类文件或目录)。是因为前面的正斜杠/D:/。。但是我没有把它放在那里,当我试图打印路径时,它不包含那个/在D前面。但是当我打印绝对路径时,它包含那个/D。这里有什么问题?我还有我的清单文件,如下所示

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();
    } 
        }    
}



Android基于linux,所以像“D:”这样的东西永远不会起作用

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

String strFile = Environment.getExternalStorageDirectory() + "/android/Suyesh.2DV106.Assignment3/southern_cities.txt";
最后,您的路径应该类似于:

“/mnt/sdcard/android/Suyesh.2DV106.Assignment3/southern_cities.txt”
如果
D
是您的外部存储目录(SD卡或闪存),请使用
环境。getExternalStorageDirectory()
您是否尝试过使用:

File file = new File(TheCityMap.class.getResource(/* name */));
BufferedReader reader = new BufferedReader(new FileReader( file ));
或:


D是我的本地驱动器不是外置驱动器你不能从安卓设备访问你的本地驱动器我这样做了,现在它说权限被拒绝实际上我使用的是模拟器而不是真实的设备你不能从模拟器访问你计算机中的文件。您需要将文件放入模拟器,是吗?它说构造函数fileReader url未定义fileReader获取文件?实际上,我不知道在android中我必须执行Environment.getExternalStorageDirectory(),但执行此操作后,文件未找到异常变成文件未找到异常+访问被拒绝。请尝试{String strFile=Environment.getExternalStorageDirectory()+“/android/Suyesh.2DV106.Assignment3/southern_cities.txt”;BufferedReader br=new BufferedReader(new FileReader(strFile));我想最后一行是说权限被拒绝,有人说找不到文件,但事实上我不知道在android环境中我必须这样做。getExternalStorageDirectory()但在执行此操作后,文件未找到异常变成文件未找到异常+访问被拒绝。请尝试添加到您的AndroidManifest.xmli中,但仍然表示权限被拒绝和文件未找到异常
File file = new File(TheCityMap.class.getResource(/* name */));
BufferedReader reader = new BufferedReader(new FileReader( file ));
new BufferedReader(new InputStreamReader(FlowAp.class.getResourceAsStream("" /* name */)))