Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.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 连续写入文件的最佳方式(每秒50次)_Java_Android_Fileoutputstream - Fatal编程技术网

Java 连续写入文件的最佳方式(每秒50次)

Java 连续写入文件的最佳方式(每秒50次),java,android,fileoutputstream,Java,Android,Fileoutputstream,我正在构建一个Android应用程序,它将加速度计和陀螺仪数据记录到一个文本文件中。在大多数教程中,他们使用的方法包括创建两个文本文件,并每秒打开和关闭50次。即: private static void writeToFile(File file, String data) { FileOutputStream stream = null; try { stream = new FileOutputStream(file, true); s

我正在构建一个Android应用程序,它将加速度计和陀螺仪数据记录到一个文本文件中。在大多数教程中,他们使用的方法包括创建两个文本文件,并每秒打开和关闭50次。即:

private static void writeToFile(File file, String data) {

    FileOutputStream stream = null;

    try {

        stream = new FileOutputStream(file, true);
        stream.write(data.getBytes());
    } catch (FileNotFoundException e) {
        Log.e("History", "In catch");
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();

    try {

        stream.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
即,在每个SensorEvent上,打开文件,写入值,然后关闭文件,20毫秒后再次打开

这一切似乎都很好,我只是想知道是否有更好的方法来做这件事?我尝试了一些更改,使用布尔标志表示流是否已打开,如果标志设置为true,则使用另一个writeToFile,但显然fileOutputStream有时会在20毫秒的时间内自行关闭,应用程序会崩溃

所以我想我的问题是:打开、写入和关闭一个文件这么多次需要多少系统资源?这很好,不是我应该担心的事情,还是有更好的方式做事情?请记住,连续的传感器记录已经对电池寿命造成了损失,所以我希望尽可能高效地完成工作


谢谢,这不是一个好办法。更好的方法是创建一次FileOutputStream,将其另存为任何类的实例成员,然后向其写入(可能偶尔调用flush以确保写入磁盘)。

这不是一种好方法。更好的方法是创建一次FileOutputStream,将其保存为任何类的实例成员,然后写入(可能偶尔调用flush以确保它写入磁盘)。

FileOutputStream
不缓冲,因此不需要刷新,但他应该使用缓冲的东西,即,它周围有一个
缓冲输出流
。让它自己冲洗。谢谢,感谢你的信息
FileOutputStream
不缓冲,因此不需要刷新,但他应该使用缓冲的东西,即在其周围使用
BufferedOutputStream
。让它自己冲洗。谢谢,感谢你的信息!