java - Android - 使用扫描仪读取文件,如何获取文件

标签 java android file dir

你好,我遇到了一个很烦人的问题 我想阅读与此类似的文本文件

KEY
0 1 2 3 4 5 6 7
KEYEND

我尝试使用扫描仪类,因为它可以返回字符串、小数等形式的结果

   public static void LoadStuff(String Name) {
      Scanner reader = null;
      try {
         reader = new Scanner(new File(Name));
      } catch (Exception e) {
         Log.d("damn", "FAIL");
      }
         if(reader != null)
            Load(reader);
   }


private static void Load(Scanner reader) {
      while (reader.hasNext()) {
         String result = reader.next();
         if (result == "KEY") {   // may be  result.equalsignorecase
            while (result != "KEYEND") {
               int index = reader.nextInt();
               Log.d("Index", String.valueOf(index));
            }
         }
      }
            reader.close();
   }

我不能在上面做,因为扫描仪找不到文件,像“file.txt”这样的解析不起作用,也尝试了路径 像这样“res/data/file.txt”也不起作用 我应该把文件放在哪里以及如何获取目录以使其工作 谢谢

最佳答案

此代码使用您的类的 getAssets() 方法。您需要将文本文件放在 Android 项目的 Assets 文件夹中。 getAssets 方法返回一个 AssetManager 对象。 open(String.format("filename.txt")) 方法返回一个 InputStream。 InputStream 是DataInputStream 的参数。然后将其用作扫描仪的输入。

try {
    DataInputStream textFileStream = new DataInputStream(getAssets().open(String.format("filename.txt")));
    Scanner sc = new Scanner(textFileStream);
    while (sc.hasNextLine()) {
        String aLine = sc.nextLine();
        System.out.println(aLine);
    }
        sc.close();
} catch (IOException e) {
        e.printStackTrace();
}

关于java - Android - 使用扫描仪读取文件,如何获取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10982252/

相关文章:

java - 使用 Jackson 将 protobuf 转换为 JSON?

java - Android线程完成通知

android - 如何使用 Smack 了解 XMPP openfire 中的键入状态

file - Perforce:是否可以对多个文件(而不是文件夹)执行集成命令?

c++ - 从巨大的 txt 中读取二维矩阵

java - 如何调试 Java 对象到 Actionscript 的 AMF (BlazeDS) 序列化?

java - 如何在android模拟器中运行wifi管理程序?

Android设置线程亲和性

java - URI 与文件性能

java - Bukkit 谈话无法休眠