tur*_*boy 2 android sd-card fileoutputstream
我正在尝试将日志语句写入SD卡.我决定这样做的方法是通过Application Object在SD卡上创建一个文件.这样我就可以从应用程序的任何地方调用静态方法logToSdcard().
创建了包含文件夹"/ RR3log /",但我记录的每个语句都在其自己的文件中,名为"rr3LogFile.txt".所以我有多个rr3LogFile文件,每个文件包含一个staement.
如何将所有语句写入一个rr3LogFile文件?在此先感谢马特.
public class NfcScannerApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
File storageDir = new File(Environment
.getExternalStorageDirectory(), "/RR3log/");
storageDir.mkdir();
try {
if(outfile == null){
outfile=File.createTempFile("rr3LogFile", ".txt",storageDir);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void logToSdcard(String tag, String statement){
Log.e(TAG, "inside logtosdcard$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
String state = android.os.Environment.getExternalStorageState();
if(!state.equals(android.os.Environment.MEDIA_MOUNTED)) {
try {
throw new IOException("SD Card is not mounted. It is " + state + ".");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
DateTime now = new DateTime();
DateTimeFormatter fmt = DateTimeFormat.forPattern("d-MMM-Y H:mm");
String dateStr = fmt.print(now);
try{
FileOutputStream fOut = new FileOutputStream(outfile);
OutputStreamWriter myOutWriter =new OutputStreamWriter(fOut);
myOutWriter.append(dateStr + " " + tag + " ");
myOutWriter.append(statement);
myOutWriter.append("\n");
myOutWriter.flush();
myOutWriter.close();
fOut.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
.
然后在应用程序中的任何位置的Activity中.
@Override
protected void onResume() {
super.onResume();
Log.e(TAG, "inside entryactivity onResume");
NfcScannerApplication.logToSdcard(TAG, "inside entryactivity onResume" );
Run Code Online (Sandbox Code Playgroud)
在您的logToSdcard方法中,使用附加参数创建FileOutputStream:
FileOutputStream fOut = new FileOutputStream(outfile, true);
Run Code Online (Sandbox Code Playgroud)
该trueparamters说,内容将被添加到该文件.另请参见FileOutputStream