java文件讀寫,Java文件讀寫的流程圖

本文目錄一覽:

java中對文件進行讀寫操作的基本類是什麼?

Java.io包中包括許多類提供許多有關文件的各個方面操作。

1 輸入輸出抽象基類InputStream/OutputStream ,實現文件內容操作的基本功能函數read()、 write()、close()、skip()等;一般都是創建出其派生類對象(完成指定的特殊功能)來實現文件讀寫。在文件讀寫的編程過程中主要應該注意異常處理的技術。

2 FileInputStream/FileOutputStream:

用於本地文件讀寫(二進制格式讀寫並且是順序讀寫,讀和寫要分別創建出不同的文件流對象);

本地文件讀寫編程的基本過程為:

① 生成文件流對象(對文件讀操作時應該為FileInputStream類,而文件寫應該為FileOutputStream類);

② 調用FileInputStream或FileOutputStream類中的功能函數如read()、write(int b)等)讀寫文件內容;

③ 關閉文件(close())。

3 PipedInputStream/PipedOutputStream:

用於管道輸入輸出(將一個程序或一個線程的輸出結果直接連接到另一個程序或一個線程的輸入端口,實現兩者數據直接傳送。操作時需要連結);

4管道的連接:

方法之一是通過構造函數直接將某一個程序的輸出作為另一個程序的輸入,在定義對象時指明目標管道對象

PipedInputStream pInput=new PipedInputStream();

PipedOutputStream pOutput= new PipedOutputStream(pInput);

方法之二是利用雙方類中的任一個成員函數 connect()相連接

PipedInputStream pInput=new PipedInputStream();

PipedOutputStream pOutput= new PipedOutputStream();

pinput.connect(pOutput);

5 管道的輸入與輸出:

輸出管道對象調用write()成員函數輸出數據(即向管道的輸入端發送數據);而輸入管道對象調用read()成員函數可以讀起數據(即從輸出管道中獲得數據)。這主要是藉助系統所提供的緩衝機制來實現的。

6隨機文件讀寫:

RandomAccessFile類(它直接繼承於Object類而非InputStream/OutputStream類),從而可以實現讀寫文件中任何位置中的數據(只需要改變文件的讀寫位置的指針)。

隨機文件讀寫編程的基本過程為:

① 生成流對象並且指明讀寫類型;

② 移動讀寫位置;

③ 讀寫文件內容;

④ 關閉文件。

七里河團隊答疑助人,希望我的回答對你有所幫助

java文件讀寫,在一個已經有內容的文件中,追加第一行,如何做到?

我的想法是可以用RandomAccessFile,這個類的seek方法,想在文件的哪個位置插入內容都行。所以你的第一行就不在話下了。但是,這個會覆蓋你文件中插入位置後面的內容。相當於我們在輸入的時候,按了鍵盤的insert鍵盤。所以,像你這種情況只能用臨時文件來存儲原有的內容,然後把要插入的數據寫入文件,再把臨時文件的內容追加到文件中。\x0d\x0avoid insert(String filename,int pos,String insertContent){//pos是插入的位置\x0d\x0a File tmp = File.createTempFile(“tmp”,null);\x0d\x0a tmp.deleteOnExit();\x0d\x0a try{\x0d\x0a RandomAccessFile raf = new RandomAccessFile(filename,”rw”);\x0d\x0a FileOutputStream tmpOut = new FileOutputStream(tmp);\x0d\x0a FileInputStream tmpIn = new FileInputStream(tmp);\x0d\x0a raf.seek(pos);//首先的話是0\x0d\x0a byte[] buf = new byte[64];\x0d\x0a int hasRead = 0;\x0d\x0a while((hasRead = raf.read(buf))0){\x0d\x0a //把原有內容讀入臨時文件\x0d\x0a tmpOut.write(buf,0,hasRead);\x0d\x0a \x0d\x0a }\x0d\x0a raf.seek(pos);\x0d\x0a raf.write(insertContent.getBytes());\x0d\x0a //追加臨時文件的內容\x0d\x0a while((hasRead = tmpIn.read(buf))0){\x0d\x0a raf.write(buf,0,hasRead);\x0d\x0a }\x0d\x0a }\x0d\x0a}

java文件讀寫

在網上查了很多關於修改文件的方法,不得其要領。自己想了兩個取巧的辦法,來解決對文件的修改。一:讀取一個文件file1(FileReader and BufferedReader),進行操作後寫入file2(FileWriter and BufferedWriter),然後刪除file1,更改file2文件名為file1(Rename()方法)。二:創建字符緩衝流(StringBuffer),讀取文件內容賦給字符緩衝流,再將字符緩衝流中的內容寫入到讀取的文件中。例如: test.txt 這裡是放在d盤的根目錄下,內容如下 able adj 有才幹的,能幹的 active adj 主動的,活躍的 adaptable adj 適應性強的 adroit adj 靈巧的,機敏的 運行結果生成在同目錄的 test1.txt中 able #adj*有才幹的,能幹的 active #adj*主動的,活躍的 adaptable #adj*適應性強的 adroit #adj*靈巧的,機敏的 代碼: public class Test { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new FileReader(“D:\\test.txt”)); StringBuffer sb = new StringBuffer(); String lineContent = null ;while( (lineContent = br.readLine()) != null){ String[] sp = lineContent.split(” “);sp[0] = sp[0].concat(” *”);sp[1] = sp[1].concat(“# “);for(int i=0;i sb.append(sp[i]);}sb.append(“\r\n”);}FileWriter fw = new FileWriter(“D:\\test2.txt”); fw.write(sb.toString()); br.close(); fw.close(); }}

原創文章,作者:CBUG,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/139342.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
CBUG的頭像CBUG
上一篇 2024-10-04 00:22
下一篇 2024-10-04 00:22

相關推薦

發表回復

登錄後才能評論