Androidでのファイルの入出力
Androidでファイルの入出力をしようとしてつまづいたのでメモ
バイナリでの出力ではなく,文字列で出力しようと思うとこうなりました.
簡単そうで難しい気がするAndroidでの入出力についてです.
いや,慣れれば簡単だと思うんですけどね.僕は慣れてなかったので.
本や,いろんなサイトを調べまくってこの結果にたどり着きました.
広告
満足度で選ばれるアンチウイルス対策ソフトなら「ESET NOD32アンチウイルス 4」
結論
import android.content.Context;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.io.FileNotFoundException;
import java.io.IOException;public class IO_Class {
private String fileName=“data.text”;
private MainActivity main;
//初期化処理を記述
public IO_Class(MainActivity ma){
main=ma;
}//読み込み処理
public ArrayList<String> inputData(){
ArrayList<String> strings=new ArrayList<String>();
File file ;
BufferedReader bufferedReader;
InputStreamReader inputStreamReader;
try {
String row1;
FileInputStream fileInputStream;
fileInputStream = main.openFileInput(fileName);
inputStreamReader=new InputStreamReader(fileInputStream);
bufferedReader=new BufferedReader(inputStreamReader);
while ((row1=bufferedReader.readLine()) !=null){
strings.add(row1);
}
bufferedReader.close();
inputStreamReader.close();
fileInputStream.close();
return strings;
}
catch (FileNotFoundException e){ return strings ; }
catch (IOException e){ return strings ; }
}
//書き込み処理
public void outputData(ArrayList<String> strings ) {
File file;
FileOutputStream writerFile;
BufferedWriter bufferedWriter;
OutputStreamWriter outputStreamWriter;
try {
String path = “\\data\\data\\” + main.getPackageName() + “\\files\\” + fileName;
file = new File(path);
writerFile = main.openFileOutput(fileName, Context.MODE_PRIVATE);
outputStreamWriter = new OutputStreamWriter(writerFile);
bufferedWriter = new BufferedWriter(outputStreamWriter);
for (String s : strings){
bufferedWriter.write(s);
}
bufferedWriter.close();
outputStreamWriter.close();
writerFile.close();
} catch (FileNotFoundException e) {
} catch (java.io.WriteAbortedException e) {
} catch (java.io.EOFException e) {
} catch (IOException e) {}
}
}
はい,こんな感じです.
ArrayList<String>に入出力したいデータを入れて,引数にしたり返したりしています.
ポイントはFileとBufferedReaderとInputStreamReaderもしくはwriterを組み合わせて使っているということ.
これで文字列での入出力ができます.
例外処理をしないとエラーが出るので処理しています.
あと,パスの指定は
“\\data\\data\\” + main.getPackageName() + “\\files\\” + fileName
のようにしなければいけません.
Androidではアプリごとに保存場所が決まっていて,それ以外の場所にはファイルの保存ができません.
とりあえずこれでファイルの入出力が簡単にできます.
広告
作ればわかる! Androidプログラミング第3版 [ 金宏和實 ] 価格:2,894円 |
Androidアプリ開発逆引きレシピ [ Re:Kayo-System ] 価格:3,024円 |