【问题标题】:Load a simple text file in Android Studio在 Android Studio 中加载一个简单的文本文件
【发布时间】:2013-05-25 03:27:16
【问题描述】:

使用 Google 的新 Android Studio IDE 获得了一个全新的项目。

我正在尝试使用InputStreamReader 加载一个简单的文本文件。我收到文件未找到异常。现在没有任何 assets/ 文件夹。我尝试创建一个并将我的文件添加到许多不同的位置(在项目的根目录、.java 文件的根目录等...)我试图移动文件但仍然没有得到文件找到了。

现在使用 Eclipse 从来都不是问题,因为任何模板都创建了 assets 文件夹。

有谁知道资产应该去哪里或如何加载它们?

这是使用的代码,它在 .open() 处失败:

InputStream iS = resources.getAssets().open("bla.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(iS));

我也在 E​​clipse 中尝试了这段代码,它可以工作并且文件内容被加载。因此,Android Studio 中可能需要一个步骤。

【问题讨论】:

  • 创建它时会发生什么?原谅我,但您的经验水平表明您不应该使用未发布的产品进行开发。
  • 创建什么?流阅读器?
  • 不,资产文件夹。
  • 项目右键->新建->目录,文件夹出现就好了,然后我把文本文件拖进去。
  • @cja。当然。 Studio 有很多错误,可能难以处理。它尚未发布,也未通过构建 Android 应用程序的认证。该帖子表明 OP 经验不足,因此我的建议是坚持使用久经考验的已发布软件。

标签: android android-studio assets streamreader


【解决方案1】:
  1. 第 1 步: 在 Name_Project-Name_Project.iml 文件中打开。
  2. 请参阅以下行: 选项名称="ASSETS_FOLDER_RELATIVE_PATH" 值="/src/main/assets"
  3. 第 2 步: 在主文件夹中创建一个子文件夹“assets”。
  4. 第 3 步: 将文件放入此文件夹中。
  5. 第 4 步: 加载它。完毕。

【讨论】:

  • 正确答案。 .iml 文件中的路径条目是关键。谢谢。
  • 优秀...已经搜索了一个多小时,所有基于 Eclipse 的想法都失败了。谢谢FIT226557! :)
  • 这让我很沮丧!谢谢! +1
  • 我的 .iml 文件中没有第 2 步所说的行?
  • 不要打开主项目的 .iml 文件,而是打开主模块的 .iml 文件。例如。如果您的项目是“MyProject”,而您实际运行的是“app”,则打开“MyProject/app/app.iml”文件。希望这会有所帮助。
【解决方案2】:

正确的答案并不完全适合我。 这有效:

转到项目视图,然后转到app/src/main 并创建新目录assets

加载文件:

   InputStream is = getApplicationContext().getAssets().open("bla.txt");

或:

   InputStream is = context.getAssets().open("bla.txt");

然后以任何你想要的方式将其转换为字符串,examples here

detailed video 怎么做(不是我的)

【讨论】:

    【解决方案3】:

    此代码将为您工作。它将从文件中获取所有数据。

    public class Quiz extends Activity {
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_quiz);
        try {
            PlayWithRawFiles();
        } catch (IOException e) {
            Toast.makeText(getApplicationContext(),
                    "Problems: " + e.getMessage(), Toast.LENGTH_LONG).show();
        }
    }// onCreate
    
    public void PlayWithRawFiles() throws IOException {
        String str="";
        StringBuffer buf = new StringBuffer();
        InputStream is = this.getResources().openRawResource(R.raw.ashraf);
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        if (is!=null) {
            while ((str = reader.readLine()) != null) {
                buf.append(str + "\n" );
            }
        }
        is.close();
       TextView tv=(TextView)findViewById(R.id.tv1);
        tv.setText(buf.toString());
    
    
    }//
            }
    

    【讨论】:

    • 你必须在 res 目录中创建原始文件夹并在那里添加你的文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    相关资源
    最近更新 更多