【问题标题】:How can I use fileReader to read text file data in Android Studios?如何使用 fileReader 在 Android Studios 中读取文本文件数据?
【发布时间】:2018-02-21 00:20:47
【问题描述】:

我有一个在 Java 中工作的 fileReader,但同样的方法不适用于 Android Studio。我在 Eclipse 中用来读取我的文本文件数据的代码是:

public void addTextFilesToCardsArrayList(String fileName) throws IOException{
        FileReader freader =  new FileReader(fileName);
        BufferedReader reader = new BufferedReader(freader);
        String line = null;
        try {
            while ((line = reader.readLine()) != null) {        //Read a file line by line
                 String[] split = line.split(",");              //Parse the line in to usable fragments
                 int cardNumber = Integer.parseInt(split[0]);
                 String cardId = split[1];
                 int apc = Integer.parseInt(split[2]);
                 int hp = Integer.parseInt(split[3]);
                 String type = split[4];

                 Card card = new Card(cardNumber, cardId, apc, hp, type);
                 cards.add(card);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

我在“主”目录中创建的资产文件夹中放置了一个名为“cards.txt”的文本文件。通常我将其作为 Eclipse 中的“cards.txt”之类的参数传入。如何让它在 Android Studios fileReader 中工作?

我见过 InputStream is = getAssets().open("file.txt");正在使用,但我喜欢在不重写我的 fileReader 代码的情况下保持我的方法大致相同。

【问题讨论】:

  • I've seen InputStream is = getAssets().open("file.txt"); being used 。确实。这就是要走的路。

标签: java android text filereader


【解决方案1】:

我在“主”目录中创建的资产文件夹中放置了一个名为“cards.txt”的文本文件

这是您的开发机器上的一个文件。它不是您 Android 设备上的文件。

我见过 InputStream is = getAssets().open("file.txt");正在使用

这是正确的使用方法。

但我喜欢在不重写 fileReader 代码的情况下保持我的方法大致相同。

然后将InputStream 而不是String 传递给addTextFilesToCardsArrayList()。将FileReader 替换为InputStreamReader。在 Android 中,使用来自getAssets().open()InputStream。在其他地方,使用FileInputStream

【讨论】:

  • 你的意思是这样的:public void addTextFilesToCardsArrayList() throws IOException{ InputStream is2 = getAssets().open("Cards4.txt"); InputStreamReader freader = new InputStreamReader(is2); BufferedReader reader = new BufferedReader(freader);
  • @Qwisatz:现成的,看起来不错。
猜你喜欢
  • 2012-09-04
  • 2018-11-14
  • 2014-04-04
  • 2014-01-18
  • 2019-07-04
  • 1970-01-01
  • 1970-01-01
  • 2018-12-19
  • 1970-01-01
相关资源
最近更新 更多