Я пытаюсь сделать текстовый файл на телефоне Android и иметь возможность заполнять его, когда это необходимо. Очевидно, у меня проблемы, и я увижу, сможет ли кто-нибудь взглянуть на то, что у меня есть.создание текстовых файлов Android IO
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class ViewLog extends Activity {
private TextView tv;
private static final String TAG = "MEDIA";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) findViewById(R.id.TextView01);
CreateExternalLogFile("I am adding something into the text file!");
}
private void CreateExternalLogFile(String s){
File root = android.os.Environment.getExternalStorageDirectory();
tv.append("\nExternal file system root: "+root);
File dir = new File (root.getAbsolutePath() + "/logs");
dir.mkdirs();
File file = new File(dir,"log.txt");
try {
FileOutputStream f = new FileOutputStream(file,true); //True = Append to file, false = Overwrite
PrintWriter pw = new PrintWriter(f);
System.out.println(s);
pw.println(s);
pw.flush();
pw.close();
f.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
Log.i(TAG, "******* File not found. Did you" +
" add a WRITE_EXTERNAL_STORAGE permission to the manifest?");
} catch (IOException e) {
e.printStackTrace();
}
tv.append("\nFile written to \n"+file);
}
}
Любая помощь будет оценена по достоинству. Я использовал adb для поиска файла, но файл не создается.
Я хотел бы сохранить файл на SD-карте, поэтому я пошел на .getExternalStorageDirectory(); При перемещении к файловому пути он должен находиться в «/mnt/sdcard/nullwall_logs/log.txt» с помощью adb (просматривая эмулятор) ничего не находится в каталоге. Кроме того, код проходит через блок try и не вводит никаких исключений. – PeterL
Просто отредактировал мое сообщение, протестированное, чтобы убедиться, что код работает. Удачи, дайте мне знать, если вам нужна дополнительная помощь :) –
Огромное спасибо! Что мне не хватало? Вы также сказали, что у вас есть: в вашем манифесте. Есть то, что? :] Благодаря! – PeterL