我的应用程序正在将数据写入txt文件。 (代码原来出现在另一个原因)
我总是将整个文件读入字符串数组并替换显式行。
阅读文件后,我记录数据以观察它。我的主要是调用应用程序7次(每行),但在第一次调用后,数据im日志记录很奇怪。
这是我的代码:
public void writeFileData(String data, int line) {
String[] lines = new String[999];
File file = null;
BufferedReader br = null;
FileOutputStream fos = null;
OutputStreamWriter os = null;
try {
file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "data.txt");
if(!file.exists())
{
try
{
if(file.createNewFile())
{
Toast.makeText(BaseActivity.this, "File was created", Toast.LENGTH_LONG).show();
}
}
catch(Exception ex)
{
Log.e("Error creating file", ex.getMessage());
}
}
br = new BufferedReader(new FileReader(file));
int i = 0;
while(i < 7)
{
buffer = br.readLine();
lines[i] = buffer;
i++;
}
br.close();
fos = new FileOutputStream(file, false);
lines[line] = data;
for(i = 0; i < 7; i++)
{
if (lines[i].isEmpty())
{
Log.e(TAG, i + "is empty");
}
else
{
Log.e(TAG, lines[i]);
}
}
for(i = 0; i < 7; i++)
{
try {
fos.write(lines[0].getBytes());
}
catch (Exception ex)
{
Log.e("Error writing", ex.getMessage());
}
}
try
{
fos.close();
}
catch(Exception ex)
{
Log.e("Error closing/flushing", ex.getMessage());
}
}
catch(Exception ex)
{
Log.e("Error creating streams", ex.getMessage());
}
}
主要内部的调用如下:
writeFullData();
writeFileData("001",0);
writeFileData("002",1);
writeFileData("110",2);
writeFileData("110",3);
writeFileData("110",4);
writeFileData("110",5);
writeFileData("110",6);
writeFullData(); 正在写入txt文件(在logcat图像中可见)
提前致谢。
Xaver Seiringer
答案 0 :(得分:0)
我调用了一个覆盖整个文件的函数。这样我就可以覆盖每一行并记录输入,所以我会注意到行的变化,而我的 writeFileData()函数也必须读取一些东西。 我没有在FileWriter中写错!
$viewer.on("click", "div > div > span.Figcontent a", function() {
toggleViewerCaption();
});
我在文件中写了21行而不是7行(在调用4次之后)。
第二个错误是我忘记了 writeFileData 中的bw.newLine。
那些错误......
但是感谢你的帮助。