在Java中,輸入輸出被稱為“流”。輸入輸出流分為字符流和字節(jié)流兩種類型。
字節(jié)流以字節(jié)為單位進行操作。Java中的InputStream和OutputStream是字節(jié)流的代表,可以用來讀取和寫入字節(jié)數組、二進制數據、圖片、媒體文件等內容。
//讀取文件 File file = new File("test.txt"); try (InputStream inputStream = new FileInputStream(file)) { byte[] bytes = new byte[2048]; int length; while ((length = inputStream.read(bytes)) != -1) { System.out.println(new String(bytes, 0, length)); } } catch (IOException e) { e.printStackTrace(); }
字符流以字符為單位進行操作。Java中的Reader和Writer是字符流的代表,可以用來讀取和寫入文本文件中的字符。
//讀取文件 File file = new File("test.txt"); try (Reader reader = new FileReader(file)) { char[] chars = new char[2048]; int length; while ((length = reader.read(chars)) != -1) { System.out.println(new String(chars, 0, length)); } } catch (IOException e) { e.printStackTrace(); }
相比之下,字符流在讀取文本文件的時候更為方便,因為它們可以自動轉換字符編碼。而字節(jié)流則需要手動指定字符編碼,否則讀取的文件可能會出現亂碼。
總的來說,字符流和字節(jié)流各有優(yōu)缺點,需要根據具體情況進行選擇。如果是讀寫文本文件,可以選擇字符流,否則可以選擇字節(jié)流。