Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在资源中读取txt文件的一行_Java_Android_Text - Fatal编程技术网

Java 在资源中读取txt文件的一行

Java 在资源中读取txt文件的一行,java,android,text,Java,Android,Text,我在资源中放置了一个文本文件,我希望一次读取其中的一行。我的问题是,我不知道如何访问活动中的文件,一旦我访问了它,我将如何只选择一行 如果将txt文件保存在资产中是个坏主意,我应该将其放在哪里以便于访问 我真的很感激任何帮助 要打开资产,您需要调用 <context>.getAssets().open(<your file>); .getAssets().open(); 是您的活动,因此如果这是在您的onCreate中,那么它将是此。该调用返回一个inputstrea

我在资源中放置了一个文本文件,我希望一次读取其中的一行。我的问题是,我不知道如何访问活动中的文件,一旦我访问了它,我将如何只选择一行

如果将txt文件保存在资产中是个坏主意,我应该将其放在哪里以便于访问


我真的很感激任何帮助

要打开资产,您需要调用

<context>.getAssets().open(<your file>);
.getAssets().open();
是您的活动,因此如果这是在您的
onCreate
中,那么它将是
。该调用返回一个inputstream,然后您可以随意处理它


我不认为将文本文件保存在那里会是一个特别糟糕的主意,这取决于您使用该文本文件的目的。

这是我用来在RSS提要阅读器中预填充表的一个片段。您可以将其用作满足您需求的轨道

res/raw/
中,我有一个文件
feeds.txt
。引用的文件的代码类似于
R.raw.feeds

    final Resources resources = mHelperContext.getResources();
    InputStream inputStream = resources.openRawResource(R.raw.feeds);
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream), 8192);

    try {
        String line;
        while ((line = reader.readLine()) != null) {
             //make the use you want with "line"
        }
    } catch (IOException e) {
        Log.e(TAG, "Error loading sample feeds.");
        throw new RuntimeException(e);
    }
试试这个:

创建一个新方法,例如readMyFile()。 它一定是这样的:

private String readMyFile(File file) throws IOException {
     BufferedReader reader = new BufferedReader(new FileReader(file));
     StringBuilder txt = new StringBuilder();
     String line;

     while ((line = reader.readLine()) != null) {
        txt.append(line);
        txt.append("\n");
}

reader.close();
return txt.toString();
将其粘贴到代码中,并使用方法(readMyFile([要在资产中读取的文件])


希望有帮助。

谢谢!这与将inputstream更改为bufferedreader,然后使用我的方法读取一行bufferedreader的代码结合在一起,效果非常好!嗯,实际上我现在遇到了一点麻烦。如果我想将此代码放入onClick中以获取按钮,该怎么办?当我尝试时,它会说onClick Listener未定义该代码。我能做些什么来解决这个问题?抱歉,它说类型new View的方法getAssets()未定义。OnClickListener(){}奇怪,如果您执行this.getAssets()操作,应该可以在onClick方法内部。奇怪的是它不起作用,但是我创建了一个静态方法并称之为onClick,它起作用了。再次感谢您的帮助!谢谢!我用res/raw中的文件尝试了它,但我想我现在只想把它保存在assets中!