[英]When accessing a text file on my android device through my PC, part of it doesn't come through
在我的android应用中,我将值添加到文本文件中,并确认它可以工作。 我可以在android设备上打开文本文件,并在那里查看所有数据。 但是,当我通过USB将设备插入PC时,文本文件中的某些数据将被切断。
这是当我打开文本文件时在android设备上看到的数据:false,false,false,NULL,NULL,false,false,NULL,NULL,NULL,60,67,false,true,1,false,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");
}
}
使用以下功能可以有效地写入文件。 您必须具有访问外部存储的权限 。
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();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.