繁体   English   中英

通过PC访问Android设备上的文本文件时,部分文本文件无法通过

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM