android上的文件I/O问题

android上的文件I/O问题,android,sd-card,fwrite,rom,Android,Sd Card,Fwrite,Rom,我最近遇到了一个问题。 我需要将一些tmp数据写入/data/data/com中的文件(使用API fwrite)。/tmp on Android 测试程序只在一个线程上运行。 一次写入几百KB的数据 案例1: 在本例中,我首先在此路径中创建2个文件,然后依次写入这2个tmp文件 写入过程偶尔会暂停几次,有时会暂停几秒钟。 在这种情况下,如果只写一个tmp(但是fopen这个2文件),情况也是一样的 案例2: 如果此目录中只存在一个tmp文件。 写入过程永远不会暂停 为什么在案例1中写入过程会持

我最近遇到了一个问题。 我需要将一些tmp数据写入/data/data/com中的文件(使用API fwrite)。/tmp on Android

测试程序只在一个线程上运行。 一次写入几百KB的数据

案例1: 在本例中,我首先在此路径中创建2个文件,然后依次写入这2个tmp文件

写入过程偶尔会暂停几次,有时会暂停几秒钟。 在这种情况下,如果只写一个tmp(但是fopen这个2文件),情况也是一样的

案例2: 如果此目录中只存在一个tmp文件。 写入过程永远不会暂停

为什么在案例1中写入过程会持续暂停

谢谢你的帮助

更新:

我已经测试了Android的几个版本,包括2.3.7、4.0.3、4.1

代码是:

FILE *tmp1 = fopen(tmp1,"wb"); 
FILE *tmp2 = fopen(tmp2,"wb"); 
FILE *swap = tmp1; 

while(..) { 
    if (..) 
        swap = tmp2; 
    else
        swap = tmp1;

    fwrite(.., swap)
}

你能发布你的代码吗?你使用的是什么版本的Android?我甚至在每次fwrite()之后都会调用fclose(),但在案例1中情况相同,经过一些测试,我想只要一个目录中存在两个以上的文件,情况就永远不会改变。我的观点是错误的吗?为什么?