【问题标题】:android bufferedwriter - can't find the text fileandroid bufferedwriter - 找不到文本文件
【发布时间】:2013-04-08 01:01:46
【问题描述】:

我是编程新手(几个月前刚学 Java),通常通过在这里搜索在网上找到很多帮助,但这次我很困惑。

我正在尝试将我的 Android 手机上的传感器数据保存到存储中的文本文件中,然后使用 USB 线将文本文件拉出。但是,在手机上运行该应用程序后,我似乎无法在内部存储的文件夹中找到它。

我确实在清单中包含了这一行以排除权限问题。

    <uses-permission 
    android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

当我按下屏幕上的按钮时会触发布尔值 save_data,并且我通过在按下按钮时在屏幕上显示开/关来验证该按钮是否正常工作。

public void onSensorChanged(SensorEvent event) {
synchronized (this) {
    switch (event.sensor.getType()) {
    case Sensor.TYPE_ACCELEROMETER: 
        A_x_value.setText(Float.toString(event.values[0]));
        A_y_value.setText(Float.toString(event.values[1]));
        A_z_value.setText(Float.toString(event.values[2]));

        if (save_data == true) {
            SaveButton_Label.setText("On");

            String datastring = "A: " + Float.toString(event.values[0]) + " " + Float.toString(event.values[1]) + " " + Float.toString(event.values[2]);
            try
            {
                File f = new File("sensordata.txt");
                FileWriter fr = new FileWriter(f);
                BufferedWriter out = new BufferedWriter(fr);
                out.write(datastring);
                out.close();
            }

            catch (IOException e)
            {
                System.out.println("Exception");
            }

        } else {
            SaveButton_Label.setText("Off");
        }
        break;
    }
}

}

感谢你们提供的任何帮助。谢谢!

【问题讨论】:

    标签: android bufferedwriter


    【解决方案1】:

    当您创建一个新的 File 实例时,您必须定义整个路径,包括外部存储路径。

    File f = new File(Environment.getExternalStorageDirectory().getPath(), "sensordata.txt");
    

    【讨论】:

    • 您好,感谢您的帮助,但我似乎仍然找不到文本文件。当我可以清楚地看到手机上其他应用程序的应用程序文件夹时,我也无法在内部存储中找到应用程序文件夹......所以这可能是一个比代码更大的问题吗?我一直在 android 网站 (developer.android.com/training/basics/firstapp/…) 的“myfirstapp”包中玩耍,并在真实设备而不是模拟器上运行它。谢谢
    • 感谢您的帮助。它工作了两次,但我删除了文本文件再试一次,此后一直没有工作。对我来说,它不可重复是没有意义的,有什么想法吗?
    • 除非您有 root 访问权限,否则您看不到您的应用文件夹。如果您在内部存储中看到一些应用程序文件夹,那是一些用于其他目的的文件夹。如果您对手机/平板电脑进行 root,您将获得 mnt/data/data 文件夹的访问权限,因此您将在其包名称文件夹 (com.something.someapp) 中看到所有已安装的应用程序。尝试为您创建一些测试文件夹,并将新文件放入其中,例如 new File(Environment.getExternalStorageDirectory().getPath()+"/test/"+"sensordata.txt");
    • 我发现如果我只是关闭/打开手机,那么我现在可以看到文本文件。很奇怪。感谢您的帮助!
    【解决方案2】:
    you cant see your app folder unless you hav root permission,but u will be able to see the file.
    
    
     File f = new File(Environment.getExternalStorageDirectory().getPath()+"/"+"sensordata.txt");
    
    copy this code in your java file and try
    

    【讨论】:

    • 感谢您的帮助。它工作了两次,但我删除了文本文件再试一次,此后一直没有工作。对我来说,它不可重复是没有意义的,有什么想法吗?
    • 当然可以,每次都会重新创建文件,可能是你改变了一些其他代码
    猜你喜欢
    • 1970-01-01
    • 2022-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    相关资源
    最近更新 更多