當前位置:成語大全網 - 漢語詞典 - Java讀取、修改和寫入txt文件。

Java讀取、修改和寫入txt文件。

模擬:先創建壹個TXT文件(內容來自控制臺);然後讀取文件,在控制臺上輸出;最後,復制新創建的TXT文件(對數據排序後)。分別對應三個函數,調用順序要註意:創建、讀取、復制。

效果圖如下:綠色部分是控制臺輸入的內容(輸入end就結束了)。

代碼如下:

包裹?com.baidu

進口?Java . io . buffered reader;

進口?Java . io . file;

進口?Java . io . file not found exception;

進口?Java . io . file output stream;

進口?Java . io . filereader;

進口?Java . io . io exception;

進口?Java . io . output streamwriter;

進口?Java . util . array;

進口?Java . util . scanner;

進口?java.util .向量;

公共?班級?CreateAndReadTxt?{

//?文件名

公共?靜電?字符串?文件名?=?".txt ";

公共?靜電?字符串?新文件名?=?".txt ";

//?文件路徑

公共?決賽?靜電?字符串?網址?=?system . getproperty(" user . dir ");

//?createadreadxt . class . get resource("/")。getPath();

//?創建TXT文件

公共?靜電?作廢?createTxtFile(字符串?fName,?字符串?fileContent)?{

//?創建文件

文件名?=?fName?+?文件名;

文件?文件?=?新的?文件(文件名);

//?可以改變

file . set writable(true);

//?判斷當前路徑下是否有同名文件。

布爾?isExist?=?file . exists();

如果?(isExist)?{

//?文件存在,刪除。

file . delete();

}

//?寫文件

試試?{

//?文件寫對象

FileOutputStream?fos?=?新的?FileOutputStream(文件);

//?輸入流寫-默認字符是GBK

OutputStreamWriter?osw?=?新的?output streamwriter(fos);

//?寫入

OSW . write(file content);

//?寫完後關閉。

OSW . close();

System.out.println("文件創建成功:\ t "+fileName);

}?接住?(IOException?e)?{

System.out.println("未能寫入文件:\t "?+?e . getmessage());

}

}

//?閱讀文件

公共?靜電?作廢?readFile(字符串?文件名)?{

System.out.println("開始讀取文件:\t "?+?文件名);

//?生成文件對象

文件?文件?=?新的?文件(文件名);

//

試試?{

//?字符閱讀

FileReader?弗雷德?=?新的?FileReader(文件);

//?緩沖處理

BufferedReader?br?=?新的?buffered reader(fr);

字符串?str?=?"";

什麽時候?((str?=?br.readLine())?!=?null)?{

system . out . println(str);

}

//?關閉

br . close();

fr . close();

}?接住?(FileNotFoundException?e)?{

System.out.println("讀取文件失敗:\t "?+?e . getmessage());

}?接住?(IOException?e)?{

System.out.println("讀取文件失敗:\t "?+?e . getmessage());

}

}

//?存檔原件

公共?靜電?作廢?copyFile(字符串?fromFileName,字符串?toFileName){

//讀取文件

文件?文件?=?新的?文件(來自文件名);

試試?{

FileReader?弗雷德?=?新的?FileReader(文件);

BufferedReader?br?=?新的?buffered reader(fr);

//?定義接收變量

向量& ltDouble & gt?vec?=?新的?向量& ltDouble & gt();

字符串?s?=?"";

while(null!=(s = br . readline()){

vec . add(double . parse double(s));

}

br . close();

fr . close();

//?保存到數組並排序。

雙倍?竇[]?=?新的?double[vec . size()];

vec . toarray(dou);

arrays . sort(dou);

系統。out.println ("= = = = = = =復制文件= = = = = = ");

//?寫壹個新文件

新文件名?=?" copy "+new filename;

文件?新文件?=?新的?file(to filename);

FileOutputStream?fos?=?新的?FileOutputStream(newFile,真);

OutputStreamWriter?奧斯姆?=?新的?output streamwriter(fos);

for(雙倍?竇){

osm . write(d . double value()+" \ n ");

}

osm . close();

fos . close();

}?接住?(FileNotFoundException?e)?{

System.out.println("讀取文件失敗:\t "?+?e . getmessage());

}?接住?(IOException?e)?{

System.out.println("讀取文件失敗:\t "?+?e . getmessage());

}

}

公共?靜電?作廢?main(String[]?args)?{

/**

?*?結構數據

?*/

掃描儀?掃描?=?新的?掃描儀(system . in);

StringBuilder?sb?=?新的?StringBuilder();

字符串?s?=?"";

而(!(“結束”。等於(s?=?scan.next()))){//?當結束進入時,它就結束了。

某人追加;

sb . append(" \ n ");

}

scan . close();

/**

?*?服務數據

?*/

createandreadxt . createtxtfile(" creat ",sb . tostring());

CreateAndReadTxt.readFile(文件名);

System.out.println(文件名);

CreateAndReadTxt.copyFile(文件名,new filename);

createadreadxt . readfile(new filename);

}

}