android 输出日志但无法输出多行
android output log but I cant output multi line
我在编写 android 程序时遇到问题。
我想将用户输入保存到日志中。
但是,不管怎样我do.I只能保存一行。
当我按下按钮时,新数据将覆盖旧数据。
我该怎么做才能保存数据而不覆盖它?
这是我的代码,mainactivity.java
public class MainActivity extends AppCompatActivity {
private EditText acc;
private Button login;
private Write write = new Write(MainActivity.this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
login = (Button)findViewById(R.id.login);
acc=(EditText)findViewById(R.id.acc);
login.setOnClickListener(getDBRecord);
}
private Button.OnClickListener getDBRecord = new Button.OnClickListener() {
public void onClick(View v) {
String car_num=acc.getText().toString().toUpperCase();
write.WriteFileExample(car_num);
}
};
}
这是我的代码,write.java
public class Write {
private static Context context;
public Write(Context context) {
this.context = context;
}
public static void WriteFileExample(String message) {
FileOutputStream fop = null;
File file;
String content = message;
try {
File sdcard = Environment.getExternalStorageDirectory();
file = new File(sdcard, "myLog.log"); //輸出檔案位置
if (!file.exists()) { // 如果檔案不存在,建立檔案
file.createNewFile();
}
fop =new FileOutputStream(file);
byte[] contentInBytes = content.getBytes();// 取的字串內容bytes
fop.write(contentInBytes); //輸出
} catch (IOException e) {}
finally {
try {
if (fop != null)
fop.close();
} catch (IOException e) {}
}
}
}
谢谢
使用 FileWriter 和 BufferedWriter 怎么样?您可以附加您的日志数据文本。
这是我正在使用的一个示例应用程序。
BufferedWriter bw = BufferedWriter(new FileWriter([LogFile path], [append text]));
bw.write(strLog);
bw.write("\n");
bw.flush();
您可以在 FileWriter 上设置附加文本选项(布尔值),您现有的文本将被保留。
替换
fop =new FileOutputStream(file);
与
fop =new FileOutputStream(file, true);
第二个参数是append
选项。通过将其设置为 true,您会将新内容附加到旧内容,而不是覆盖旧内容。
我在编写 android 程序时遇到问题。 我想将用户输入保存到日志中。 但是,不管怎样我do.I只能保存一行。 当我按下按钮时,新数据将覆盖旧数据。 我该怎么做才能保存数据而不覆盖它?
这是我的代码,mainactivity.java
public class MainActivity extends AppCompatActivity {
private EditText acc;
private Button login;
private Write write = new Write(MainActivity.this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
login = (Button)findViewById(R.id.login);
acc=(EditText)findViewById(R.id.acc);
login.setOnClickListener(getDBRecord);
}
private Button.OnClickListener getDBRecord = new Button.OnClickListener() {
public void onClick(View v) {
String car_num=acc.getText().toString().toUpperCase();
write.WriteFileExample(car_num);
}
};
}
这是我的代码,write.java
public class Write {
private static Context context;
public Write(Context context) {
this.context = context;
}
public static void WriteFileExample(String message) {
FileOutputStream fop = null;
File file;
String content = message;
try {
File sdcard = Environment.getExternalStorageDirectory();
file = new File(sdcard, "myLog.log"); //輸出檔案位置
if (!file.exists()) { // 如果檔案不存在,建立檔案
file.createNewFile();
}
fop =new FileOutputStream(file);
byte[] contentInBytes = content.getBytes();// 取的字串內容bytes
fop.write(contentInBytes); //輸出
} catch (IOException e) {}
finally {
try {
if (fop != null)
fop.close();
} catch (IOException e) {}
}
}
}
谢谢
使用 FileWriter 和 BufferedWriter 怎么样?您可以附加您的日志数据文本。
这是我正在使用的一个示例应用程序。
BufferedWriter bw = BufferedWriter(new FileWriter([LogFile path], [append text]));
bw.write(strLog);
bw.write("\n");
bw.flush();
您可以在 FileWriter 上设置附加文本选项(布尔值),您现有的文本将被保留。
替换
fop =new FileOutputStream(file);
与
fop =new FileOutputStream(file, true);
第二个参数是append
选项。通过将其设置为 true,您会将新内容附加到旧内容,而不是覆盖旧内容。