在我的Android应用程序中,我将值放到文本文件中,我已确认它有效。我可以在我的Android设备上打开文本文件并查看其中的所有数据。但是,当我通过USB将设备插入我的PC时,文本文件中的某些数据会被切断。
这是我打开文本文件时在Android设备上看到的数据: FALSE,FALSE,FALSE,NULL,NULL,FALSE,FALSE,NULL,NULL,60,67,FALSE,TRUE,如图1所示,假,4,1,
这是我在计算机上访问文本文件时看到的数据: FALSE,FALSE,FALSE,NULL,NULL,FALSE,FALSE,NULL,NULL,60,67,FALSE,TRUE,1,F
正如您所看到的,最后几段数据被切断了。我尝试过不同的数据,但仍然会被切断。
我不确定这是否会有所帮助,因为以下代码似乎确实将所有数据都提供给了文本文件(如果在我的Android设备上查找),但这里是写入文本的代码文件。我从之前创建的SharedPreferences文件中获取了两个数据列表,并在按下按钮时将它们写入文件。
SharedPreferences auto = getSharedPreferences("Auto", MODE_PRIVATE);
SharedPreferences teleop = getSharedPreferences("Teleop", MODE_PRIVATE);
autoValues = auto.getAll();
teleopValues = teleop.getAll();
public void writeToFile(View view){
try {
FileOutputStream stream = new FileOutputStream(myFile);
for (Map.Entry<String, ?> entry : autoValues.entrySet()){
stream.write(entry.getValue().toString().getBytes());
stream.write(",".getBytes());
}
for (Map.Entry<String, ?> entry : teleopValues.entrySet()){
stream.write(entry.getValue().toString().getBytes());
stream.write(",".getBytes());
}
stream.close();
System.out.println("SUCCESS: MAY HAVE WRITTEN TO FILE IN EXPORT");
} catch (Exception e){
e.printStackTrace();
System.out.println("ERROR: DID NOT WRITE TO FILE");
}
}
答案 0 :(得分:0)
使用以下功能有效地写入您的文件。 您必须拥有访问外部存储空间的权限。
public static void logToFile(String message) {
String formattedData = String.format("%s", (new SimpleDateFormat("dd-MM HH:mm:ss", Locale.getDefault())
.format(new Date())) + "\t\t\t" + message + "\n");
FileOutputStream stream = null;
String path = Environment.getExternalStorageDirectory() + File.separator + Environment.DIRECTORY_DOWNLOADS;
try {
File file = new File(path + "/Logger.txt");
if (!file.exists()) {
file.createNewFile();
}
stream = new FileOutputStream(file, true);
stream.write(formattedData.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}