gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 02:33:40 26 4
gpt4 key购买 nike

我正在构建一个 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 毫秒后再次打开它。

一切似乎都运行良好,我只是想知道是否有更好的方法来做到这一点?我尝试使用 boolean 标志进行一些更改来表示流是否已打开,然后如果标志设置为 true,则使用不同的 writeToFile,但显然 fileOutputStream 有时会在 20 毫秒的时间范围内自行关闭,并且应用程序崩溃.

所以我想我的问题是:多次打开、写入和关闭一个文件需要多少系统资源?这很好吗,我不应该担心,或者有更好的方法吗?请记住,连续的传感器记录已经对电池生命周期造成了影响,因此我希望尽可能高效地完成工作。

谢谢

最佳答案

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

关于java - 连续写入文件的最佳方式(每秒 50 次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46720634/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com