私はAndroidで作業する初心者です。ファイルはすでに場所に作成されていますdata/data/myapp/files/hello.txt
。このファイルの内容は「hello」です。ファイルの内容を読み取るにはどうすればよいですか?
質問する
153773 次
7 に答える
66
Androidでストレージを使用する方法を見てくださいhttp://developer.android.com/guide/topics/data/data-storage.html#filesInternal
内部ストレージからデータを読み取るには、アプリ ファイル フォルダーが必要で、ここからコンテンツを読み取る必要があります
String yourFilePath = context.getFilesDir() + "/" + "hello.txt";
File yourFile = new File( yourFilePath );
また、このアプローチを使用できます
FileInputStream fis = context.openFileInput("hello.txt");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader bufferedReader = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
sb.append(line);
}
于 2013-02-08T08:19:23.757 に答える
10
ファイルを文字列のフル バージョンとして読み取ります (例外の処理、UTF-8 の使用、改行の処理):
// Calling:
/*
Context context = getApplicationContext();
String filename = "log.txt";
String str = read_file(context, filename);
*/
public String read_file(Context context, String filename) {
try {
FileInputStream fis = context.openFileInput(filename);
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader bufferedReader = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
sb.append(line).append("\n");
}
return sb.toString();
} catch (FileNotFoundException e) {
return "";
} catch (UnsupportedEncodingException e) {
return "";
} catch (IOException e) {
return "";
}
}
注: ファイル名だけでファイル パスを気にする必要はありません。
于 2014-01-06T21:02:18.457 に答える
3
ファイルパスとして引数を指定して次の関数を呼び出します。
private String getFileContent(String targetFilePath){
File file = new File(targetFilePath);
try {
fileInputStream = new FileInputStream(file);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
Log.e("",""+e.printStackTrace());
}
StringBuilder sb;
while(fileInputStream.available() > 0) {
if(null== sb) sb = new StringBuilder();
sb.append((char)fileInputStream.read());
}
String fileContent;
if(null!=sb){
fileContent= sb.toString();
// This is your fileContent in String.
}
try {
fileInputStream.close();
}
catch(Exception e){
// TODO Auto-generated catch block
Log.e("",""+e.printStackTrace());
}
return fileContent;
}
于 2013-02-08T08:19:38.750 に答える
0
String path = Environment.getExternalStorageDirectory().toString();
Log.d("Files", "Path: " + path);
File f = new File(path);
File file[] = f.listFiles();
Log.d("Files", "Size: " + file.length);
for (int i = 0; i < file.length; i++) {
//here populate your listview
Log.d("Files", "FileName:" + file[i].getName());
}
于 2016-07-27T12:55:50.480 に答える
0
内部ストレージからファイルを読み取るには:
openFileInput() を呼び出し、読み取るファイルの名前を渡します。これは FileInputStream を返します。read() を使用してファイルからバイトを読み取ります。次に、close() でストリームを閉じます。
コード::
StringBuilder sb = new StringBuilder();
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
is.close();
} catch(OutOfMemoryError om){
om.printStackTrace();
} catch(Exception ex){
ex.printStackTrace();
}
String result = sb.toString();
于 2013-02-08T08:23:15.423 に答える