国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java IO流經(jīng)典實例

2019-11-06 08:34:36
字體:
供稿:網(wǎng)友

IO流框架

這里寫圖片描述

字節(jié)流

1、FileInputStream&FileOutputStream

import java.io.FileInputStream;import java.io.FileOutputStream;/** * @author Hanlin Wang */public class FileStream { public static void main(String[] args) throws Exception { FileInputStream in = new FileInputStream("from.txt"); //準(zhǔn)備緩沖字節(jié)數(shù)組,大小為1024個字節(jié) byte[] buf = new byte[1024]; //開始時間 long start = System.currentTimeMillis(); //in讀取字節(jié),將讀取的字節(jié)保存到buf中。len為in向buf中保存的字節(jié)數(shù) int len = in.read(buf); //讀取完成之后,釋放資源 in.close(); //通過buf打印結(jié)果 System.out.PRintln(new String(buf, 0, len)); FileOutputStream out = new FileOutputStream("to.txt"); //將buf中的字節(jié)數(shù)組寫入到to.txt中 out.write(buf, 0, len); //釋放資源 out.close(); //結(jié)束時間 long end = System.currentTimeMillis(); //打印運行時間 System.out.println("運行時間為:"+(end - start)); }}

2、BufferedInputStream&BufferedOutputStream

import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;/** * @author Hanlin Wang */public class BufferedStream { public static void main(String[] args) throws Exception { BufferedInputStream in = new BufferedInputStream( new FileInputStream("from.txt")); //字節(jié)數(shù)組 byte[] buf = new byte[1024]; //開始時間 long start = System.currentTimeMillis(); //len為已讀取的字節(jié)數(shù) int len = in.read(buf); //讀取完成后,釋放資源 in.close(); //打印讀取的數(shù)據(jù) System.out.println(new String(buf, 0, len)); BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("to.txt")); //寫入數(shù)據(jù)到to.txt out.write(buf, 0, len); //寫入完成后,釋放資源 out.close(); //結(jié)束時間 long end = System.currentTimeMillis(); //打印運行時間 System.out.println("運行時間為:"+(end - start)); }}

3、ByteArrayInputStream&ByteArrayOutputStream

import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.FileOutputStream;/** * @author Hanlin Wang */public class ByteArrayStream { public static void main(String[] args) throws Exception{ //輸入流,通過構(gòu)造函數(shù)注入原始數(shù)據(jù) ByteArrayInputStream in = new ByteArrayInputStream("whataya want from me".getBytes()); //輸出流,接受輸入流的數(shù)據(jù) ByteArrayOutputStream out2 = new ByteArrayOutputStream(); int len; while ((len=in.read())!=-1) { out2.write(len); } //關(guān)閉資源 in.close(); //關(guān)閉資源 out2.close(); FileOutputStream out = new FileOutputStream("to.txt"); //將out2的數(shù)據(jù)通過toByteArray()方法位字節(jié)數(shù)組,然后out寫入to.txt out.write(out2.toByteArray()); //釋放資源 out.close(); }}

4、DataInputStream&DataOutputStream

import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;/** * @author Hanlin Wang */public class DataStream { public static void main(String[] args) throws Exception{ //這里使用了三層裝飾 FileOutputStream des = new FileOutputStream("to.txt"); BufferedOutputStream buf = new BufferedOutputStream(des); DataOutputStream out = new DataOutputStream(buf); //運用DataOutputStream的相關(guān)方法寫數(shù)據(jù) out.writeBoolean(true);//寫入布爾值 out.writeByte(12);//寫入字節(jié)值 out.writeUTF("您好");//寫一個使用UTF-8編碼的字符串 out.writeChar('1');//寫入字符 out.close(); //讀取to.txt的數(shù)據(jù) FileInputStream des2 = new FileInputStream("to.txt"); BufferedInputStream buf2 = new BufferedInputStream(des2); DataInputStream in = new DataInputStream(buf2); //必須與之間寫入到to.txt的順序相同 System.out.println(in.readBoolean()); System.out.println(in.readByte()); System.out.println(in.readUTF()); System.out.println(in.readChar()); //釋放資源 in.close(); }}

5、ObjectInputStream&ObjectOutputStream

import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;/** * @author Hanlin Wang */public class ObjectStream { public static void main(String[] args) throws Exception{ FileOutputStream out = new FileOutputStream("to.txt"); ObjectOutputStream objout = new ObjectOutputStream(out); //創(chuàng)建Person對象 Person p = new Person("張三", 19); //寫入to.txt objout.writeObject(p); //釋放資源 objout.close(); FileInputStream in = new FileInputStream("to.txt"); ObjectInputStream objin = new ObjectInputStream(in); //讀取to.txt中的數(shù)據(jù) Person p2 = (Person) objin.readObject(); System.out.println(p2.toString()); //釋放資源 objin.close(); }}//定義一個Person,實現(xiàn)Serializable接口,保證可序列化class Person implements Serializable{ private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String toString(){ return "姓名:" + name + " | 年齡:" + age; }}

6、SequenceInputStream

import java.io.ByteArrayInputStream;import java.io.FileOutputStream;import java.io.SequenceInputStream;import java.util.Enumeration;import java.util.Vector;/** * @author Hanlin Wang */public class SequenceStream { public static void main(String[] args) throws Exception{ //第一個inputstream ByteArrayInputStream in = new ByteArrayInputStream( "whataya want from me".getBytes()); //第二個inputstream ByteArrayInputStream in2 = new ByteArrayInputStream( "/nnever close our eyes".getBytes()); //釋放資源(因為in、in2不做讀寫操作) in.close(); in2.close(); //用一個集合封裝in、in2 Vector<ByteArrayInputStream> v = new Vector<ByteArrayInputStream>(); v.add(in); v.add(in2); Enumeration<ByteArrayInputStream> ele = v.elements(); //創(chuàng)建一個SequenceInputStream對象(SequenceInputStream ins = new SequenceInputStream(in, in2);亦可) SequenceInputStream ins = new SequenceInputStream(ele); FileOutputStream out = new FileOutputStream("to.txt"); //ins讀數(shù)據(jù),out寫數(shù)據(jù)。out將ins讀的數(shù)據(jù)寫入to.txt中 int len; while ((len=ins.read())!=-1) { out.write(len); } //釋放資源 ins.close(); out.close(); }}

7、PipedInputStream&PipedOutputStream

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PipedInputStream;import java.io.PipedOutputStream;import java.io.PrintStream;/** * @author Hanlin Wang */public class PipedStream { public static void main(String[] args) throws Exception{ final PipedInputStream in = new PipedInputStream(); final PipedOutputStream out = new PipedOutputStream(); //連接 in.connect(out); //包裝out,用于向in寫入數(shù)據(jù) final PrintStream printer = new PrintStream(out); //從鍵盤中獲取數(shù)據(jù) final BufferedReader data = new BufferedReader( new InputStreamReader(System.in)); //reader包裝in,用于獲取數(shù)據(jù) final BufferedReader reader = new BufferedReader( new InputStreamReader(in)); //創(chuàng)建寫線程 new Thread(new Runnable() { public void run() { //將數(shù)據(jù)寫入out while (true) { try { String line = data.readLine(); System.out.println(Thread.currentThread().getName() + ",發(fā)送信息:"+line); System.out.println("/n發(fā)送中.../n"); Thread.sleep(5000); printer.println(line); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } } }, "服務(wù)端線程").start(); //創(chuàng)建讀線程 new Thread(new Runnable() { public void run() { while (true) { try { System.out.println(Thread.currentThread().getName()+",收到信息:"+reader.readLine()); } catch (IOException e) { e.printStackTrace(); } } } }, "客戶端線程").start(); }}

8、PrintStream

import java.io.FileOutputStream;import java.io.PrintStream;/** * @author Hanlin Wang */public class PrintStream_ { public static void main(String[] args) throws Exception{ FileOutputStream out = new FileOutputStream("to.txt"); PrintStream printer = new PrintStream(out); //創(chuàng)建一個對象 Person p = new Person("李四", 24); //寫入to.txt, printer.println(p); printer.print("Hello, it's me"); //釋放資源 printer.close(); }}

字符流

1、FileReader&FileWriter

import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;/** * @author Hanlin Wang */public class FileReaderAndWriter { public static void main(String[] args) throws IOException { FileReader reader = new FileReader("from.txt"); //1024大小的字符數(shù)組 char[] buf = new char[1024]; //reader讀取字符,將讀取的字符存入buf中。len為讀取的字符數(shù)。 int len = reader.read(buf); //讀取完畢后。釋放資源 reader.close(); //打印讀取的信息 String str = new String(buf, 0, len); System.out.println(); FileWriter writer = new FileWriter("to.txt"); //將讀取的信息寫入to.txt writer.write(str); //寫入完成后,釋放資源 writer.close(); }}

2、BufferedReader&BufferedWriter

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;/** * @author Hanlin Wang */public class BufferedReaderAndWriter { public static void main(String[] args) throws Exception{ BufferedReader test = new BufferedReader(new FileReader("from.txt")); //BufferedReader中有一個readLine方法,返回一行字符串。循環(huán)打印 String line = null; while ((line=test.readLine())!=null) { System.out.println(line); } BufferedReader reader = new BufferedReader(new FileReader("from.txt")); char[] buf = new char[1024]; //len為寫入到buf的字符數(shù) int len = reader.read(buf); //讀取完成了,釋放資源 reader.close(); //通過buf字符獲取字符串 String str = new String(buf, 0, len); BufferedWriter writer = new BufferedWriter(new FileWriter("to.txt")); //寫入數(shù)據(jù)到to.txt writer.write(str); //寫入完成后,釋放資源 writer.close(); }}

3、CharArrayReader&CharArrayWriter

import java.io.CharArrayReader;import java.io.CharArrayWriter;import java.io.FileWriter;/** * @author Hanlin Wang */public class CharArrayReaderAndWriter { public static void main(String[] args) throws Exception{ //輸入流,通過構(gòu)造函數(shù)獲得原始數(shù)據(jù) CharArrayReader reader = new CharArrayReader("u make me wanna".toCharArray()); //輸出流,沒有目的地,寫入輸入流的數(shù)據(jù)到自己本身 CharArrayWriter writer2 = new CharArrayWriter(); //writer將reader中的數(shù)據(jù)寫入到自己本身,reader先讀取自己的數(shù)據(jù),復(fù)制給一個局部變量len int len; while ((len=reader.read())!=-1) { writer2.write(len); } //釋放資源 reader.close(); writer2.close(); FileWriter writer = new FileWriter("to.txt"); //將writer2轉(zhuǎn)換為字符數(shù)組,然后writer寫入之(轉(zhuǎn)換為字符串也可以) writer.write(writer2.toCharArray());//writer2.toString()亦可 //釋放資源 writer.close(); }}

4、PipedReader&PipedWriter

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PipedReader;import java.io.PipedWriter;import java.io.PrintWriter;/** * @author Hanlin Wang */public class PipedReaderAndWriter { public static void main(String[] args) throws Exception{ final PipedReader reader2 = new PipedReader(); final PipedWriter writer = new PipedWriter(); //連接 reader2.connect(writer); //讀取鍵盤數(shù)據(jù) final BufferedReader keyboard = new BufferedReader( new InputStreamReader(System.in)); //pw包裝writer final PrintWriter pw = new PrintWriter(writer); //reader包裝reader2,便于用readLine()方法讀取pw寫入的數(shù)據(jù) final BufferedReader reader = new BufferedReader(reader2); //寫數(shù)據(jù)線程 new Thread(new Runnable() { public void run() { while (true) { try { String line = keyboard.readLine(); System.out.println(Thread.currentThread().getName() + ",發(fā)送數(shù)據(jù):" + line); System.out.println("/n發(fā)送中.../n"); Thread.sleep(3000); pw.println(line); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } } }, "服務(wù)端線程").start(); //讀數(shù)據(jù)線程 new Thread(new Runnable() { public void run() { while (true) { try { System.out.println(Thread.currentThread().getName() + ",收到數(shù)據(jù):"+reader.readLine()); } catch (IOException e) { e.printStackTrace(); } } } }, "客戶端線程").start(); }}

5、PrintWriter

import java.io.CharArrayReader;import java.io.CharArrayWriter;import java.io.FileWriter;import java.io.PrintWriter;/** * @author Hanlin Wang */public class PrintWriter_ { public static void main(String[] args) throws Exception{ CharArrayWriter writer = new CharArrayWriter(); PrintWriter pw = new PrintWriter(writer); pw.println("hahaha"); //釋放資源 pw.close(); CharArrayReader reader = new CharArrayReader(writer.toCharArray()); int len; while ((len=reader.read())!=-1) { System.out.print((char)len); } //釋放資源 reader.close(); }}

6、StringReader&StringWriter

import java.io.StringReader;import java.io.StringWriter;/** * @author Hanlin Wang */public class StringReaderAndWriter { public static void main(String[] args) throws Exception{ StringWriter writer = new StringWriter(); writer.write("whataya want from me"); writer.close(); StringReader reader = new StringReader(writer.toString()); int len; while ((len=reader.read())!=-1) { System.out.print((char)len); }//System.out.println(writer.toString()); reader.close(); }}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 吴忠市| 墨脱县| 津市市| 庆安县| 嘉定区| 湘西| 车致| 定西市| 涟源市| 龙江县| 阳东县| 商河县| 桐乡市| 虎林市| 晋城| 天祝| 资中县| 吕梁市| 会同县| 定边县| 湖北省| 丰顺县| 栾城县| 祁门县| 乐陵市| 上蔡县| 石门县| 宝清县| 正安县| 封开县| 大石桥市| 靖宇县| 德格县| 博兴县| 章丘市| 新蔡县| 无锡市| 穆棱市| 固镇县| 凌海市| 崇礼县|