Java文件I/O操作是指對文件進行輸入和輸出的操作,在Java中很方便地使用了文件I/O操作。文件I/O操作可以分為文件位元組輸入輸出流和文件字元輸入輸出流兩種,而Java的文件I/O操作以文件流為中心。
一、文件位元組輸入輸出流
文件位元組輸入輸出流是用於以位元組為單位的I/O操作。文件位元組輸入輸出流使用InputStream和OutputStream這兩個類進行操作。其中,InputStream是用於從文件中讀入數據,而OutputStream則是將數據寫入文件。
以下代碼示例演示了如何使用文件位元組輸入輸出流進行文件讀寫:
import java.io.*; public class FileStreamTest { public static void main(String[] args) { try { byte[] bytesToWrite = {1, 2, 3}; FileOutputStream out = new FileOutputStream("test.txt"); out.write(bytesToWrite); out.close(); FileInputStream in = new FileInputStream("test.txt"); byte[] bytesRead = new byte[2]; in.read(bytesRead); in.close(); for (byte b : bytesRead) { System.out.println(b); } } catch (IOException e) { e.printStackTrace(); } } }
二、文件字元輸入輸出流
文件字元輸入輸出流是用於以字元為單位的I/O操作。文件字元輸入輸出流使用Reader和Writer這兩個類進行操作。其中,Reader是用於從文件中讀入字元,而Writer則是將字元寫入文件。
以下代碼示例演示了如何使用文件字元輸入輸出流進行文件讀寫:
import java.io.*; public class FileWriterTest { public static void main(String[] args) { try { String stringToWrite = "Hello, World!"; FileWriter out = new FileWriter("test.txt"); out.write(stringToWrite); out.close(); FileReader in = new FileReader("test.txt"); char[] charsRead = new char[5]; in.read(charsRead); in.close(); for (char c : charsRead) { System.out.println(c); } } catch (IOException e) { e.printStackTrace(); } } }
三、文件流的輸入輸出操作
文件流的輸入輸出操作指的就是對文件進行讀寫操作。在進行文件I/O操作時,我們常使用BufferedInputStream和BufferedOutputStream這兩個類來進行緩衝操作,提高效率。同時,Java也提供了FileReader和FileWriter這兩個類來方便地進行文件的讀寫操作。
以下代碼示例演示了通過文件流的輸入輸出操作來讀寫文件,並使用緩存提高效率:
import java.io.*; public class FileReadWriteWithBufferedStream { public static void main(String[] args) { try { FileInputStream fileIn = new FileInputStream("test.txt"); BufferedInputStream bufIn = new BufferedInputStream(fileIn); FileOutputStream fileOut = new FileOutputStream("out.txt"); BufferedOutputStream bufOut = new BufferedOutputStream(fileOut); byte[] buffer = new byte[1024]; int bytesRead = 0; while ((bytesRead = bufIn.read(buffer)) != -1) { bufOut.write(buffer, 0, bytesRead); } bufOut.flush(); bufIn.close(); bufOut.close(); } catch (IOException e) { e.printStackTrace(); } } }
四、文件讀寫操作的異常處理
文件I/O操作具有風險,因為文件可能不存在、許可權不足等原因而無法讀取或寫入。因此,在進行文件讀寫操作時,我們應該在代碼中進行合適的異常處理。Java中提供了IOException和FileNotFoundException兩個類來處理文件I/O操作異常。
以下代碼示例演示了如何在文件讀寫操作中處理異常:
import java.io.*; public class FileReadDemo { public static void main(String[] args) { File file = new File("test.txt"); try { FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); String line = ""; while ((line = br.readLine()) != null) { System.out.println(line); } br.close(); fr.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
五、小結
Java文件I/O操作是Java編程中常用的操作之一。Java文件I/O操作以文件流為中心,包括文件位元組輸入輸出流和文件字元輸入輸出流兩種類型。在文件讀寫操作中,我們可以使用緩衝區和異常處理技術來提高效率和降低出錯率。通過學習文件I/O操作,可以讓我們更好地應對Java編程中的文件讀寫操作。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/272166.html