113.Java操作資料的流物件
阿新 • • 發佈:2020-09-15
運算元組的流物件
操作位元組陣列
ByteArrayInputStream
以及ByteArrayOutputStream
toByteArray();
toString();
writeTo(OutputStream);
public static void testByteArrayInputStream() throws Exception { InputStream in = new ByteArrayInputStream(new byte[] { 65, 66, 67 }); ByteArrayOutputStream out = new ByteArrayOutputStream();for (int b = -1; (b = in.read()) != -1;) { out.write(b); } in.close(); out.close(); System.out.println(Arrays.toString(out.toByteArray())); System.out.println(out); }
操作字元陣列
CharArrayReader
CharArrayWriter
對於這些流,源是記憶體。目的也是記憶體。
而且這些流並未呼叫系統資源。使用的就是記憶體中的陣列。
所以這些在使用的時候不需要close。
運算元組的讀取流在構造時,必須要明確一個數據源。所以要傳入相對應的陣列。
對於運算元組的寫入流,在建構函式可以使用空引數。因為它內建了一個可變長度陣列作為緩衝區。
public static void testCharArrayReader() throws Exception { CharArrayReader reader = new CharArrayReader(new char[] { 'A', 'b', 'c' }); CharArrayWriter writer = new CharArrayWriter();for (int b = -1; (b = reader.read()) != -1;) { writer.write(b); } reader.close(); writer.close(); System.out.println(writer.toCharArray()); }
這幾個流的出現其實就是通過流的讀寫思想在運算元組。
類似的物件同理:
StringReader
StringWriter。
public static void testStringReader() throws Exception { StringReader reader = new StringReader("test 中國"); StringWriter writer = new StringWriter(); for (int b = -1; (b = reader.read()) != -1;) { writer.write(b); } reader.close(); writer.close(); System.out.println(writer.toString()); }