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