我想从txt文件中读取并发送到TextView。我的方法适用于我阅读的Java项目,我看到System.out.print,但同样的方法在MainActivity中不起作用。我该如何修理。谢谢
MainActivity
public class MainActivity extends Activity {
TextView txt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt=(TextView)findViewById(R.id.textView1);
Parsing p =new Parsing();
try {
String gelen=p.readTxt();
txt.setText(gelen);
}
catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
解析:
public class Parsing {
public String readTxt() throws FileNotFoundException
{
File file = new File("C:\\Users\\John\\Desktop\\try.txt");
StringBuilder fileContents = new StringBuilder((int)file.length());
Scanner scanner = new Scanner(file);
String lineSeparator = System.getProperty("line.separator");
try {
while(scanner.hasNextLine()) {
fileContents.append(scanner.nextLine() + lineSeparator);
}
return fileContents.toString();
} finally {
scanner.close();
}
}
}
我正在努力,但我只看到TextView
。
答案 0 :(得分:3)
您无法将computer directory
文件指定到android文件路径位置以读取其中的行。
assests
,然后更改
路径,然后尝试。答案 1 :(得分:1)
答案 2 :(得分:0)
对于sdcard上的文件(“sdcard \ myfolder \ 1.txt”),请使用:
File file = new File(Environment.getExternalStorageDirectory(), "myfolder\1.txt");
也不要忘记:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
答案 3 :(得分:0)
您必须将文件放在项目的asset
文件夹中。
然后,要访问它,您可以执行类似
BufferedReader reader = new BufferedReader(
new InputStreamReader(getAssets().open("filename.txt")));
有关详细信息,请在此处阅读我的答案:
答案 4 :(得分:0)
首先, Android应用程序项目与Java项目不同。
你不能在android中使用File file = new File("C:\\Users\\John\\Desktop\\try.txt");
。
将您的文本文件放在Android项目下的/ assets目录中。使用AssetManager
类来访问它。
AssetManager am = context.getAssets();
InputStream is = am.open("test.txt");
如果要从存储卡访问文件,请在程序中使用inputsteram is
。您还需要以下权限才能阅读文本文件
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />