Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Google Glass上保存和检索文件?_Java_Android_Google Glass - Fatal编程技术网

Java 如何在Google Glass上保存和检索文件?

Java 如何在Google Glass上保存和检索文件?,java,android,google-glass,Java,Android,Google Glass,我需要能够将加速度计数据存储在谷歌眼镜上的文本文件中,将眼镜插入计算机,然后能够检索写入的文件 我没有收到任何错误/异常--该文件从未出现过 以下是我到目前为止得到的(不起作用的): 收集传感器数据绝对不是问题,因为如果设置断点,我可以看到x、y和z public void onSensorChanged(SensorEvent event) { Sensor sensor = event.sensor; float x = event.values[0]; float

我需要能够将加速度计数据存储在谷歌眼镜上的文本文件中,将眼镜插入计算机,然后能够检索写入的文件

我没有收到任何错误/异常--该文件从未出现过

以下是我到目前为止得到的(不起作用的):

收集传感器数据绝对不是问题,因为如果设置断点,我可以看到
x
y
z

public void onSensorChanged(SensorEvent event) {
    Sensor sensor = event.sensor;

    float x = event.values[0];
    float y = event.values[1];
    float z = event.values[2];
    String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
    String outString = "\""+currentDateTimeString+"\","+x+","+y+","+z+"\n";

    if (sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
        try {
            OutputStreamWriter osw = new OutputStreamWriter(accFile);
            osw.write(outString);
            osw.flush();
            osw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

public void onDestroy() {
    ...
    if(accFile != null)
    {
        try {
            accFile.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

为了以防万一,android清单具有android.permission.WRITE\u EXTERNAL\u STORAGE

openFileOutput
将创建/写入应用程序内部的文件(参数
MODE\u WORLD\u READABLE
已被弃用)。理想情况下,这意味着您不能从计算机访问此文件

请改用外部存储公用目录:

File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
file = new File(path, filename);
要执行写入操作,请使用
文件输出流

os = new FileOutputStream(file, true);
os.write(string.getBytes());
FileInputStream fis = new FileInputStream(file);
int c;
String temp = "";
while ( (c = fis.read()) != -1) {
     temp = temp + " | " + Character.toString((char) c);
}
Log.v(TAG, temp);
要从应用程序中执行读取,请使用
FileInputStream

os = new FileOutputStream(file, true);
os.write(string.getBytes());
FileInputStream fis = new FileInputStream(file);
int c;
String temp = "";
while ( (c = fis.read()) != -1) {
     temp = temp + " | " + Character.toString((char) c);
}
Log.v(TAG, temp);

最后,要通过adb shell访问您的文件,只需访问路径返回的目录即可。toString()

的工作方式非常有魅力。非常感谢。