我有一个编写Android程序的问题。 我想保存用户输入的日志。 但是,无论我做什么。我只能节省一行。 当我按下按钮时,新数据将覆盖旧数据。 如何保存数据而不覆盖数据?
这是我的代码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) {}
}
}
}
谢谢
答案 0 :(得分:0)
如何使用FileWriter和BufferedWriter?您可以附加日志数据文本。
这是一个示例,我正在使用我当前的应用程序之一。
BufferedWriter bw = BufferedWriter(new FileWriter([LogFile path], [append text]));
bw.write(strLog);
bw.write("\n");
bw.flush();
您可以在FileWriter上设置附加文本选项(布尔值),以保留现有文本。
答案 1 :(得分:0)
替换
ImageDataGenerator
使用
<script type="text/javascript">
function radio() {
var theMix = document.getElementById('mix');
var theDrive = document.getElementById('drive');
var theCountry = document.getElementById('country');
if (document.getElementById("mix").checked) {
document.querySelector("label[for=mix]").innerHTML = "https://wtmx.com/";
} else if (document.getElementById("drive").checked) {
document.querySelector("label[for=drive]").innerHTML = "https://wdrv.com/";
} else if (document.getElementById("country").checked) {
document.querySelector("label[for=country]").innerHTML = "https://us99.radio.com/";
}
}
</script>
<form>
<p>List all the stations you listen to <br>
<input type="checkbox" name="option1" value="A">The mix 101.9 <br>
<input type="checkbox" name="option2" value="B">The Drive 97.1 <br>
<input type="checkbox" name="option3" value="C">US 99 Country 99.5 <br>
</p>
</form>
<form>
<p>What is your favorite station?</p>
<input type="radio" name="stations" id="mix" value="A">
<label for="mix">The Mix 101.9</label><br>
<input type="radio" name="stations" id="drive" value="B">
<label for="drive">The Drive 97.1</label><br>
<input type="radio" name="stations" id="country" value="C">
<label for="country">US 99 Country 99.5 </label><br>
<input type="button" value="Link To Favorite Station" onclick="radio()">
</form>
第二个参数是fop =new FileOutputStream(file);
选项。通过将其设置为true,您将把新内容附加到旧内容上,而不是覆盖旧内容。