在 Android Studio 中加载一个简单的文本文件

Posted

技术标签:

【中文标题】在 Android Studio 中加载一个简单的文本文件【英文标题】:Load a simple text file in 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 经验不足,因此我的建议是坚持使用久经考验的已发布软件。 【参考方案1】:
    第 1 步: 在 Name_Project-Name_Project.iml 文件中打开。 请参阅以下行: 选项名称="ASSETS_FOLDER_RELATIVE_PATH" 值="/src/main/assets" 第 2 步: 在主文件夹中创建一个子文件夹“assets”。 第 3 步: 将文件放入此文件夹中。 第 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 目录中创建原始文件夹并在那里添加你的文件

以上是关于在 Android Studio 中加载一个简单的文本文件的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Visual Studio 2017 中加载 SDK 信息 Android SDK 管理器

在android中加载和保存数据文件

如何在 Microsoft Visual Studio 中加载 .xml 文件

特定的 webview 不会在 Android 的布局中加载

无法在 RemoteViewsFactory 中加载多个图像

在 Visual Studio c++ 中创建将在 VB 中加载的 DLL