Ⅰ 用java中的io流寫入文件如何避免覆蓋原來的內容求代碼
用這抄個方法public FileOutputStream(String name,boolean append)throws FileNotFoundException,將邏輯值append設為襲false時,寫入的位元組數據覆蓋文本原來的內容,為ture是即追加到原來文本的末尾。覆蓋原文本內容如:FileOutputStream x=new FileOutputStream("文件全路徑",false);throws FileNotFoundException為拋出異常。
Ⅱ 如何在JAVA中把信息存儲在TXT中
import java.io.*;
pyblic class TestPrintWriter{
public TestPrintWriter(){
Sting mg="******" //接收你文本框裡面的內容
try{
/*
文件名名字自己定義,樓上說了,你要先判斷文件是否存在,
存在就刪除,在創建
*/
FileWriter fw=new FileWriter("記事本.txt");
PrintWriter pw=new PrintWriter(fw);
pw.println(s); //把內容寫進文件
}
catch(Exception e){
e.printStackTrace();
}
}
publid static void main(String args[]){
new TestPrintWriter();
}
}
Ⅲ Java中有沒有像TXT文件中插入一行數據而不覆蓋其他內容的方法
//大概是這樣
importjava.io.File;
importjava.io.RandomAccessFile;
/**
*
*@authorsie1501
*
*/
publicclassHelloworld{
publicstaticvoidinsertNewLine(StringinsertContent,intline){
try{
FilesrcFile=newFile("D:\1.txt");//首先存在文件,文件內容:123
if(srcFile.exists()){
Filetemp=newFile("D:\2.txt");
RandomAccessFileread=newRandomAccessFile(srcFile,"rw");
RandomAccessFileinsert=newRandomAccessFile(temp,"rw");
Stringstr="";
intindex=0;
while(null!=(str=read.readLine())){
if(index==line){//等於寫入行號時
insert.write((insertContent+str+" ").getBytes());//寫入新內容+原有內容
}else{
insert.write((str+" ").getBytes());//寫入原有內容
}
index++;
}
if(index<line){//行號大於文件行數,在文件末位處添加內容
longlength=temp.length();//原有文件長度
insert.seek(length);
insert.write(insertContent.getBytes());//寫入文件末尾處
}
insert.close();
read.close();
read=newRandomAccessFile(srcFile,"rw");
insert=newRandomAccessFile(temp,"rw");
while(null!=(str=insert.readLine())){//將臨時文件內容寫到源文件
read.write((str+" ").getBytes());
}
read.close();
insert.close();
temp.delete();//刪除臨時文件
System.out.println("--------------End----------");
}
}catch(Exceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){
insertNewLine("line0d",0);//第一行插入line0
}
}
Ⅳ java 數據寫入TXT文件中被覆蓋的問題
FileOutputStream 還有一個構造函數:
FileOutputStream (File file, boolean append)
JDK 文檔中對此方法的說明:
「如果第二個參數為 true,則將位元組寫入文件末尾處,而不是寫入文件開始處。」
即可解決你的問題。
改成:FileOutputStream fos = new FileOutputStream(file, true);
Ⅳ java中用printWrite向文件中輸入數據為什麼會覆蓋原來的數據,怎麼解決呢
PrintWriter()的作用是為了定義流輸出的位置,之後設置是否追加輸入為true,並且此流可以正常內的存儲中文容,減少亂碼輸出。舉例:
PrintWriter out = new PrintWriter("D:\\test.txt",true);//定義輸出流位置,並且文件必須存在,設置為true表示追加內容
out.println("中文測試");//寫入內容
out.close();//關閉流
備註:文件流用完之後必須及時通過close方法關閉,否則會一直處於打開狀態,直至程序停止,增加系統負擔。
Ⅵ 如何用java寫入txt,每次運行都覆蓋前一次的內容(多行數據)
Java使用FileWriter實現文件的寫入,用法為:FileWriter(file,true); 其中第二個參數設置成false就是覆蓋寫入,true就是增量存回儲。舉例代碼:答
importjava.io.File;
importjava.io.FileWriter;
importjava.io.IOException;
publicclassFile01Demo{
publicstaticvoidmain(String[]args)throwsIOException{
Filefile=newFile("D:\a.txt");
FileWriterfw=newFileWriter(file,true);//設置成true就是追加
fw.write("asd");
fw.write(" ");
fw.write("ffd");
fw.close();
}
}
Ⅶ java給txt文件寫入內容原內容被覆蓋怎麼辦
之前已經覆蓋的是無法找回了,建議樓主下次可以採用FileOutputStream:
/**
* 追加文件:使用FileOutputStream,在構造FileOutputStream時,把第二個參數設為true 為追加內容
*
* @param fileName
* @param content
*/
public static void method1(String file, String conent) {
BufferedWriter out = null ;
try {
out = new BufferedWriter( new OutputStreamWriter(
new FileOutputStream(file, true )));
out.write(conent);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
或者使用字元流的
FileWriter(StringfileName, booleanappend)
構造一個FileWriter對象,第二個參數為給出一個帶有布爾值的參數,表示是否追加寫入的數據。
望採納 謝謝!