首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件存在时的Java NoSuchFileException

文件存在时的Java NoSuchFileException
EN

Stack Overflow用户
提问于 2021-06-17 21:31:01
回答 1查看 121关注 0票数 0

我正在尝试解析一个json文件作为android开发项目的一部分。这是一个不断弹出的错误消息:W/System.err: java.nio.file.NoSuchFileException: C:/Users/andno/Desktop/AndroidDev2ClimateApp/app/src/main/java/com/example/androiddev2climateapp/ui/home/test.json然而,在android studio中,错误中的路径是作为一个链接提供的,我可以点击这个链接,将我带到写文件-因此,我不认为这个路径是错误的。下面是我的代码:

代码语言:javascript
复制
String first = "C:/Users/andno/Desktop/AndroidDev2ClimateApp/app/src/main/java/com/example/androiddev2climateapp/ui/home/test.json";
try {
    String fileContents = new String((Files.readAllBytes(Paths.get(first))));
    JSONObject json = new JSONObject(fileContents);
    JSONArray widgets = new JSONArray("WidgetArray");
    for(int i = 0; i < widgets.length(); i++){
        int id = widgets.getJSONObject(i).getInt("id");
        System.out.println(id);
    }
} catch(IOException | JSONException e){
    e.printStackTrace();
}

很抱歉,格式被弄乱了。我也尝试过在路径中使用\而不是/,但它不起作用。任何帮助都将非常感谢--非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2021-06-17 21:57:05

当你测试的时候,你也许能够让这段代码工作,但是很明显,你的安卓手机上没有C:\Users\andno,将来也永远不会有。

你找错人了。您根本不想读取文件。

您希望从java (或者更确切地说,android)加载类文件(或者在android中被认为是类文件)的同一位置读取资源。可能是从罐子里拿出来的。

UiMain.class.getResource("test.json")

UiMain.class.getResourceAsStream("test.json")

将从UiMain.class所在的位置(即,在相同的包中,我假设这是类com.example.android.androiddev2climateapp.home.ui.UiMain )获得一个名为test.json的资源。第一个是URL,通常可以传递给图像的构造函数等;第二个是stream,你需要安全地关闭它(如果android已经开始添加有20年历史的java功能,则可以使用try/ APIs或try-with-resources ),并且可以使用各种API将其转换为字符串。JSON API本身可能只需要输入一个inputstream。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68020420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档