位元組陣列流,檔案流,資料流,轉換流
阿新 • • 發佈:2019-01-29
public class Demo011 { public static void main(String[] args) { Demo011 de = new Demo011(); de.byteArrayInputStream();// 位元組陣列輸入流 de.fileInputStream();// 檔案輸入流 de.fileInputStream2();// 檔案輸入流,讀進陣列 de.fileOutputStream();// 檔案輸出流 de.copy();// 檔案複製 de.dataOutputStream();// 資料輸出流(用資料流寫操作) de.dataInputStream();// 資料輸入流(用資料流讀操作) de.dataOutputStream2();// 資料輸出流(用帶緩衝區的輸出流寫操作) de.dataInputStream2();// 資料輸入流(用帶緩衝區的輸入流讀操作) de.printStream(); } private void printStream() { // TODO Auto-generated method stub try { PrintStream ps = new PrintStream("c:\\hello.txt"); ps.write("sdfa".getBytes()); ps.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void dataOutputStream2() { // TODO Auto-generated method stub try { FileOutputStream fos = new FileOutputStream("c:\\hello.txt"); BufferedOutputStream bs = new BufferedOutputStream(fos); bs.write("xiedu".getBytes()); fos.close(); bs.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void dataInputStream2() { // TODO Auto-generated method stub try { FileInputStream fis = new FileInputStream("c:\\hello.txt"); StringBuffer str = new StringBuffer(); BufferedInputStream bs = new BufferedInputStream(fis);// 帶緩衝區的輸入流 InputStreamReader isr = new InputStreamReader(bs);// 轉換為字元流 int i = isr.read(); while (i != -1) { str.append((char) i);// 轉換為字元遍歷輸出 i = isr.read(); } isr.close(); bs.close(); fis.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void dataInputStream() { // TODO Auto-generated method stub try { FileInputStream fis = new FileInputStream("c:\\hello.txt"); DataInputStream dos = new DataInputStream(fis); String str = dos.readUTF(); System.out.println(str); fis.close(); dos.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void dataOutputStream() { // TODO Auto-generated method stub try { FileOutputStream fis = new FileOutputStream("c:\\hello.txt"); DataOutputStream dis = new DataOutputStream(fis); dis.writeUTF("寫入"); dis.close(); fis.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void copy() { try { FileInputStream fis = new FileInputStream("c:\\hello.txt"); FileOutputStream fos = new FileOutputStream("c:\\hello1.txt"); int i = fis.read(); while (i != -1) { fos.write(i); i = fis.read(); } fos.close(); fis.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void fileOutputStream() { // TODO Auto-generated method stub String str = "寫入內容"; try { OutputStream os = new FileOutputStream("c:\\hello.txt"); os.write(str.getBytes());// 轉換為位元組輸入 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void fileInputStream2() { // TODO Auto-generated method stub try { InputStream is = new FileInputStream("c:\\hello.txt"); byte[] by = new byte[1024]; is.read(by);// 讀進位元組陣列 String str = new String(by);// 輸出位元組陣列 is.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void fileInputStream() { // TODO Auto-generated method stub try { InputStream is = new FileInputStream("c:\\hello.txt"); InputStreamReader isr = new InputStreamReader(is, "GBK");// 轉換流 int i = isr.read(); while (i != -1) { System.out.println((char) i);// 轉換為字元 i = isr.read(); } isr.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void byteArrayInputStream() { // TODO Auto-generated method stub byte[] by = new byte[] { 5, 12, 1, 56, 47, 8, 96, 64 }; ByteArrayInputStream bais = new ByteArrayInputStream(by); int i = bais.read(); while (i != -1) { System.out.print(i); i = bais.read(); } try { bais.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }