日期:2014-05-20  浏览次数:20722 次

请问如何在一个非空文件后,追加写数据(用 FileWriter)
请问如何在指定的位置写数据   FileWriter
现在做一个实事Log文件,
希望在不同的时候时候,向一个文件里写数据。
问题是现在只能写一行,望高人看看我的代码。
fileWrite.write(strOneLine,nLogSize,nOneLineSize);

//nLogSize   `现有文件的行
//strOneLine   `log   信息,如启动,退出  

try{
java.io.FileWriter   fileWrite   =   new   java.io.FileWriter(strLogFileName);

String   strOneLine   =   strTime   +   strLogInfo;
strOneLine   =   strOneLine   +   "\n ";
if(nLogSize   ==   0){
fileWrite.write(strOneLine);
}else{
int   nOneLineSize   =   strOneLine.length();
fileWrite.write(strOneLine,nLogSize,nOneLineSize);
}

fileWrite.close();
}catch(IOException   eIO){
eIO.printStackTrace();
}catch(Exception   eE){
eE.printStackTrace();
}


------解决方案--------------------
你不就是想在log文件里追加内容吗


FileWriter fw=null;
try{
fw=new FileWriter( "e:\\a.txt ",true);
fw.write( "aaaaaaaaaaa ");
fw.flush();
}catch(Exception e){
}finally{
if(fw!=null){
try{fw.close();}catch(Exception e){}
}
}


这样就可以了


------解决方案--------------------
请问如何在指定的位置写数据
用RandomAccessFile实现
在网上帮你搜了个小例子
import java.io.IOException;
import java.io.RandomAccessFile;

public class RandomAccessFileTest {
public RandomAccessFileTest() {
try {
RandomAccessFile dos = new RandomAccessFile( "tmp1 ", "rw ");
dos.writeInt(1);
dos.seek(0);
System.out.println(dos.readInt());
} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String xx[]) {
new RandomAccessFileTest();
}
}

------解决方案--------------------
java.io.FileReader fileRead = new java.io.FileReader(sourcefile, true);

这样就是以添加方式打开啊
------解决方案--------------------
参数的意思是,往fileWriter中写入 str中的第off个字符开始,共len个字符