在Java中,數(shù)據(jù)的傳輸方式有兩種:字符流和字節(jié)流。
字符流
字符流以字符為單位進行傳輸,每個字符占用兩個字節(jié)。Java字符流包括Reader和Writer兩個抽象類及其子類。
// 示例:使用字符流讀取文件內(nèi)容 File file = new File("test.txt"); try (Reader reader = new FileReader(file)) { char[] buf = new char[1024]; int len = -1; while ((len = reader.read(buf)) != -1) { System.out.println(new String(buf, 0, len)); } } catch (IOException e) { e.printStackTrace(); }
在示例中,我們使用了FileReader類讀取文件內(nèi)容,并通過char數(shù)組進行緩沖處理。
字節(jié)流
字節(jié)流以字節(jié)為單位進行傳輸,一次讀取一個字節(jié)。Java字節(jié)流包括InputStream和OutputStream兩個抽象類及其子類。
// 示例:使用字節(jié)流寫入文件內(nèi)容 File file = new File("test.txt"); try (OutputStream out = new FileOutputStream(file)) { String s = "Hello, Java!"; out.write(s.getBytes()); } catch (IOException e) { e.printStackTrace(); }
在示例中,我們使用了FileOutputStream類將字符串寫入文件,并通過getBytes()方法將字符串轉(zhuǎn)換為字節(jié)數(shù)組。
總結(jié)
字符流和字節(jié)流各有各的長處,開發(fā)者應(yīng)根據(jù)具體的場景來選擇使用哪種方式。