簡要介紹java文件讀寫 Java.io 包幾乎包含了所有操作輸入、輸出需要的類。
(一)讀取控制臺輸入: (1) 控制臺輸入由 System.in 完成,把 System.in 包裝在一個 BufferedReader 對象中來創建一個字符流;(2) 再使用 read() 方法從控制臺讀取一個字符,或者用 readLine() 方法讀取一個字符串; (3) 需要導入對應的io包,其次是調用read()和readLine()需要拋出IOException異常。
(二)控制臺輸出: (1) 控制臺的輸出由 PRint( ) 和 println() 完成。這些方法都由類 PrintStream 定義,System.out 是該類對象的一個引用。(2) PrintStream 繼承了 OutputStream類,并且實現了方法 write()。
(三)讀寫文件: Java中的數據流分為2種,一種是字節流,另一種是字符流。這兩種流主要由4個抽象類來表示: InputStream, OutputStream,Reader, Writer,輸入輸出各兩種。其中InputStream和OutputStream表示字節流, Reader和Writer表示字符流,其他各種各樣的流均是繼承這4個抽象類而來的。 使用流能夠讀取文件內容,同樣也能夠寫入文件內容。進行文件操作的類包括File、 FileInputStream、 FileOutputStream、 FileReader、FileWriter等幾個類。 A、字節流 (1)FileInputStream 該流用于從文件讀取數據 new創建,FileInputStream類是InputStream的子類。 FileInputStream類主要用于從文件系統中的某個文件中獲取輸入字節。 InputStream f = new FileInputStream(“C:/java/hello”); (2)FileOutputStream FileOutputStream類是OutputStream的子類, FileOutputStream 主要是用于將數據以字節流寫入目標文件的輸出流。 OutputStream f = new FileOutputStream(“C:/java/hello”) B、字符流 (1)Reader類,是一個輸入流,同樣也是一個字符流。 Reader類是所有輸入字符流的超類。 (2)Writer類,是一個輸出流,同樣也是一個字符流。 Writer類是所有輸出字符流的超類。
代碼1:創建文件->寫入文件->讀取文件
package FileWriteRead;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;public class testFile { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub //創建文件 File file = new File("E:/data/javadata/file","test2.txt"); file.createNewFile();//拋出異常 // 向文件寫入內容(輸出流) String str = "He is studying java!"; byte bt[] = new byte[1024]; bt = str.getBytes(); FileOutputStream in = new FileOutputStream(file); in.write(bt, 0, bt.length); in.close(); // 讀取文件內容 (輸入流) FileInputStream out = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(out); int ch = 0; while ((ch = isr.read()) != -1) { System.out.print((char) ch); } }}2、代碼2-測試文件的多行讀取
package FileWriteRead;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;public class TestLinesRead { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub File file = new File("E:/data/javadata/file","test3.txt"); System.out.println("按行讀取文件:"); BufferedReader reader = new BufferedReader(new FileReader(file)); String str = null; int line = 1; while((str=reader.readLine())!=null){ //打印行號 System.out.println("line"+line+": "+str); line = line+1; } reader.close(); }}在控制臺輸出結果,打印文件每一行內容:
新聞熱點
疑難解答