戻る
Android備忘録(ファイル操作とシェル)
Android備忘録
ファイルの読み込みとシェルの操作
(1)シェルの操作
Androidエミュレーターのシェルのはコマンドプロンプトで
adb shell
で起動する
adbはAndroidSDKがインストールされえているフォルダーのplatform-toolsの中にある。
私の環境の場合は
c:\android-sdk-windows\platform-tools\adb shell
での起動となる。
勿論
cd \android-sdk-windows\platform-tools
adb shell
でもOKだ。
Program FilesにSDKをインストールした場合は
c:\Program files\android-sdk-windows\platform-tools\adb shell
の起動となる。
コンソールを起動する
cd c:\android-sdk-windows\platform-tools
チェンジディレクトリでadbのあるフォルダーまで入る
c:\android-sdk-windows\platform-tools>adb shell
Shellを起動する。#なのでスーパーユーザーだ。
# cat /data/data/filewrite.syakazuka.com/files/test.txt
cat /data/data/filewrite.syakazuka.com/files/test.txt
this is file write test.
today it's very cold,and snow fall.
上記のようにコマンドを打つと
下のように打ったコマンドが表示され、実行される
# cat /data/data/filewrite.syakazuka.com/files/test.txt
cat /data/data/filewrite.syakazuka.com/files/test.txt
this is file write test.
today it's very cold,and snow fall.#
# mkdir /data/data/fileread.syakazuka.com/files/
mkdir /data/data/fileread.syakazuka.com/files/
# echo "this is test for file read." > /data/data/fileread.syakazuka.com/files/test.txt
echo "this is test for file read." > /data/data/fileread.syakazuka.com/files/test.txt
# ls
ls
sqlite_stmt_journals
cache
sdcard
etc
system
sys
sbin
proc
init.rc
init.goldfish.rc
init
default.prop
data
root
dev
今回はデータの入出力の操作実験のため、
/data/data/fileread.syakazuka.com/files/test.txt
に、Shellを利用してデータを書き込んでみた。
書き込んだデータをシェルで読んでみると以下のようになる
# ls -l >> /data/data/fileread.syakazuka.com/files/test.txt
ls -l >> /data/data/fileread.syakazuka.com/files/test.txt
# cat /data/data/fileread.syakazuka.com/files/test.txt
cat /data/data/fileread.syakazuka.com/files/test.txt
this is test for file read.
drwxrwxrwt root root 2011-03-04 01:45 sqlite_stmt_journals
drwxrwx--- system cache 2011-01-18 00:35 cache
d--------- system system 2011-03-04 01:45 sdcard
lrwxrwxrwx root root 2011-03-04 01:45 etc -> /system/etc
drwxr-xr-x root root 2009-11-24 23:17 system
drwxr-xr-x root root 1970-01-01 00:00 sys
drwxr-x--- root root 1970-01-01 00:00 sbin
dr-xr-xr-x root root 1970-01-01 00:00 proc
-rwxr-x--- root root 10700 1970-01-01 00:00 init.rc
-rwxr-x--- root root 1677 1970-01-01 00:00 init.goldfish.rc
-rwxr-x--- root root 106696 1970-01-01 00:00 init
-rw-r--r-- root root 118 1970-01-01 00:00 default.prop
drwxrwx--x system system 2011-01-18 00:35 data
drwx------ root root 2009-08-07 03:35 root
drwxr-xr-x root root 2011-03-04 01:46 dev
#
|
(2)ファイルを読み込むプログラム
書き込んだデータを読み込むプログラムを作成し、実行した画面が以下のとおりである。

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="1"
>
<TableRow>
<TextView android:text="ファイル名"/>
<EditText android:id="@+id/filename"/>
</TableRow>
</TableLayout>
<Button android:id="@+id/read"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="読み込む"
/>
<TextView android:id="@+id/result"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
FileReadActivity.java
package fileread.syakazuka.com;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.Button;
import android.widget.TextView;
import java.io.IOException;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class FileReadActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);final Button forward = (Button) findViewById(R.id.read);
forward.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
readFile();
}
});
}
private void readFile() {
final EditText filename = (EditText) findViewById(R.id.filename);
StringBuffer sb = new StringBuffer();
try {
FileInputStream fis =
openFileInput(filename.getText().toString());
InputStreamReader isw = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isw);
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
sb.append(System.getProperty("line.separator"));
}
br.close();
} catch (IOException e) {
sb.append(e.toString());
}
final TextView result = (TextView) findViewById(R.id.result);
result.setText(sb.toString());
}
}
|