亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java.io徹底研究

2019-11-18 11:33:01
字體:
來源:轉載
供稿:網友

  一. Input和Output

  1. stream代表的是任何有能力產出數據的數據源,或是任何有能力接收數據的接收源。在java的IO中,所有的stream(包括Input和Out stream)都包括兩種類型:

  1.1 以字節為導向的stream

  以字節為導向的stream,表示以字節為單位從stream中讀取或往stream中寫入信息。以字節為導向的stream包括下面幾種類型:

  1) input stream:

  1) ByteArrayInputStream:把內存中的一個緩沖區作為InputStream使用

  2) StringBufferInputStream:把一個String對象作為InputStream

  3) FileInputStream:把一個文件作為InputStream,實現對文件的讀取操作

  4) PipedInputStream:實現了pipe的概念,主要在線程中使用

  5) SequenceInputStream:把多個InputStream合并為一個InputStream

  2) Out stream

  1) ByteArrayOutputStream:把信息存入內存中的一個緩沖區中

  2) FileOutputStream:把信息存入文件中

  3) PipedOutputStream:實現了pipe的概念,主要在線程中使用

  4) SequenceOutputStream:把多個OutStream合并為一個OutStream

  1.2 以Unicode字符為導向的stream

  以Unicode字符為導向的stream,表示以Unicode字符為單位從stream中讀取或往stream中寫入信息。以Unicode字符為導向的stream包括下面幾種類型:

  1) Input Stream

  1) CharArrayReader:與ByteArrayInputStream對應

  2) StringReader:與StringBufferInputStream對應

  3) FileReader:與FileInputStream對應

  4) PipedReader:與PipedInputStream對應

  2) Out Stream

  1) CharArrayWrite:與ByteArrayOutputStream對應

  2) StringWrite:無與之對應的以字節為導向的stream

  3) FileWrite:與FileOutputStream對應

  4) PipedWrite:與PipedOutputStream對應

  以字符為導向的stream基本上對有與之相對應的以字節為導向的stream。兩個對應類實現的功能相同,字是在操作時的導向不同。如CharArrayReader:和ByteArrayInputStream的作用都是把內存中的一個緩沖區作為InputStream使用,所不同的是前者每次從內存中讀取一個字節的信息,而后者每次從內存中讀取一個字符。

  1.3 兩種不現導向的stream之間的轉換

  InputStreamReader和OutputStreamReader:把一個以字節為導向的stream轉換成一個以字符為導向的stream。

  2. stream添加屬性

  2.1 “為stream添加屬性”的作用

  運用上面介紹的Java中操作IO的API,我們就可完成我們想完成的任何操作了。但通過FilterInputStream和FilterOutStream的子類,我們可以為stream添加屬性。下面以一個例子來說明這種功能的作用。

  假如我們要往一個文件中寫入數據,我們可以這樣操作:

FileOutStream fs = new FileOutStream(“test.txt”);

  然后就可以通過產生的fs對象調用write()函數來往test.txt文件中寫入數據了。但是,假如我們想實現“先把要寫入文件的數據先緩存到內存中,再把緩存中的數據寫入文件中”的功能時,上面的API就沒有一個能滿足我們的需求了。但是通過FilterInputStream和FilterOutStream的子類,為FileOutStream添加我們所需要的功能。

  2.2 FilterInputStream的各種類型

  2.2.1 用于封裝以字節為導向的InputStream

  1) DataInputStream:從stream中讀取基本類型(int、char等)數據。

  2) BufferedInputStream:使用緩沖區

  3) LineNumberInputStream:會記錄input stream內的行數,然后可以調用getLineNumber()和setLineNumber(int)

  4) PushbackInputStream:很少用到,一般用于編譯器開發

  2.2.2 用于封裝以字符為導向的InputStream

  1) 沒有與DataInputStream對應的類。除非在要使用readLine()時改用BufferedReader,否則使用DataInputStream

  2) BufferedReader:與BufferedInputStream對應

  3) LineNumberReader:與LineNumberInputStream對應

  4) PushBackReader:與PushbackInputStream對應

  2.3 FilterOutStream的各種類型

  2.2.3 用于封裝以字節為導向的OutputStream

  1) DataIOutStream:往stream中輸出基本類型(int、char等)數據。

  2) BufferedOutStream:使用緩沖區

  3) PRintStream:產生格式化輸出

  2.2.4 用于封裝以字符為導向的OutputStream

  1) BufferedWrite:與對應

  2) PrintWrite:與對應

  3. RandomaccessFile

  1) 可通過RandomAccessFile對象完成對文件的讀寫操作

  2) 在產生一個對象時,可指明要打開的文件的性質:r,只讀;w,只寫;rw可讀寫

  3) 可以直接跳到文件中指定的位置

QQ病毒 騰訊QQ空間代碼專題 PPT教程專題 ADSL應用面面俱到 fireworks教程專題 計算機和網絡技術基礎知識 校園網專題 網吧技術專題


  4. I/O應用的一個例子

import java.io.*;
public class TestIO{
public static void main(String[] args)
throws IOException{
//1.以行為單位從一個文件讀取數據
BufferedReader in =
new BufferedReader(
new FileReader("F://nepalon//TestIO.java"));
String s, s2 = new String();
while((s = in.readLine()) != null)
s2 += s + "/n";
in.close();
//1b. 接收鍵盤的輸入
BufferedReader stdin =
new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Enter a line:");
System.out.println(stdin.readLine());

//2. 從一個String對象中讀取數據
StringReader in2 = new StringReader(s2);
int c;
while((c = in2.read()) != -1)
System.out.println((char)c);
in2.close();

//3. 從內存取出格式化輸入
try{
DataInputStream in3 =
new DataInputStream(
new ByteArrayInputStream(s2.getBytes()));
while(true)
System.out.println((char)in3.readByte());
}
catch(EOFException e){
System.out.println("End of stream");
}

//4. 輸出到文件
try{
BufferedReader in4 =
new BufferedReader(
new StringReader(s2));
PrintWriter out1 =
new PrintWriter(
new BufferedWriter(
new FileWriter("F://nepalon// TestIO.out")));
int lineCount = 1;
while((s = in4.readLine()) != null)
out1.println(lineCount++ + ":" + s);
out1.close();
in4.close();
}
catch(EOFException ex){
System.out.println("End of stream");
}

//5. 數據的存儲和恢復
try{
DataOutputStream out2 =
new DataOutputStream(
new BufferedOutputStream(
new FileOutputStream("F://nepalon// Data.txt")));
out2.writeDouble(3.1415926);
out2.writeChars("/nThas was pi:writeChars/n");
out2.writeBytes("Thas was pi:writeByte/n");
out2.close();
DataInputStream in5 =
new DataInputStream(
new BufferedInputStream(
new FileInputStream("F://nepalon// Data.txt")));
BufferedReader in5br =
new BufferedReader(
new InputStreamReader(in5));
System.out.println(in5.readDouble());
System.out.println(in5br.readLine());
System.out.println(in5br.readLine());
}
catch(EOFException e){
System.out.println("End of stream");
}

//6. 通過RandomAccessFile操作文件
RandomAccessFile rf =
new RandomAccessFile("F://nepalon// rtest.dat", "rw");
for(int i=0; i<10; i++)
rf.writeDouble(i*1.414);
rf.close();

rf = new RandomAccessFile("F://nepalon// rtest.dat", "r");
for(int i=0; i<10; i++)
System.out.println("Value " + i + ":" + rf.readDouble());
rf.close();

rf = new RandomAccessFile("F://nepalon// rtest.dat", "rw");
rf.seek(5*8);
rf.writeDouble(47.0001);
rf.close();

rf = new RandomAccessFile("F://nepalon// rtest.dat", "r");
for(int i=0; i<10; i++)
System.out.println("Value " + i + ":" + rf.readDouble());
rf.close();
}
}



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成av人片在线观看香蕉| 久久久亚洲国产天美传媒修理工| 久久亚洲精品网站| 日韩在线视频免费观看高清中文| 69av成年福利视频| 日韩成人在线视频| 欧美日韩成人在线播放| 中文字幕精品—区二区| 亚洲精品日韩在线| 亚洲影院高清在线| 国产亚洲欧美另类中文| 在线视频欧美性高潮| 亚洲综合日韩在线| 久久久久五月天| 精品久久久久久| 777777777亚洲妇女| 亚洲男人天堂久| 精品偷拍一区二区三区在线看| 欧美成年人网站| 国产一区二区三区视频在线观看| 欧美成人在线免费| 亚洲欧美日韩网| 欧美一级bbbbb性bbbb喷潮片| 日韩在线视频播放| 日韩精品免费在线视频观看| 日本韩国欧美精品大片卡二| 久久精品免费电影| 国产精品一区二区在线| 色噜噜亚洲精品中文字幕| 亚洲综合中文字幕在线观看| 日韩av高清不卡| 日韩在线观看免费| 欧美肥臀大乳一区二区免费视频| 欧美日韩亚洲精品一区二区三区| 日韩在线视频二区| 91精品中文在线| 成人黄色免费网站在线观看| 亚洲欧美精品一区二区| 成人精品视频久久久久| 中文字幕免费国产精品| 欧美黑人狂野猛交老妇| 中日韩美女免费视频网站在线观看| 亚洲欧美中文日韩v在线观看| 国产精品美女久久久久久免费| 日韩国产欧美精品在线| 国产日韩在线播放| 精品视频久久久久久久| 中文字幕精品视频| 亚洲第一精品久久忘忧草社区| 久久这里只有精品99| 成人夜晚看av| 伊人一区二区三区久久精品| 亚洲福利小视频| 亚洲精品98久久久久久中文字幕| 庆余年2免费日韩剧观看大牛| 亚洲free性xxxx护士hd| 91欧美精品成人综合在线观看| 国产精品一区二区三区久久久| 日韩电影中文 亚洲精品乱码| 热99精品里视频精品| 亚洲欧美日韩久久久久久| 亚洲精品少妇网址| 91香蕉国产在线观看| 欧美孕妇孕交黑巨大网站| 欧美激情免费看| 亚洲国产91精品在线观看| 久久久午夜视频| 亚洲色图综合网| 久久精品国产v日韩v亚洲| 日韩久久免费视频| 久久久噜久噜久久综合| 欧美成年人网站| 欧美肥老妇视频| 日韩专区在线播放| 国产日韩精品入口| 久久99久久99精品免观看粉嫩| 懂色aⅴ精品一区二区三区蜜月| 九九热精品在线| 日韩精品免费观看| 91精品国产综合久久香蕉最新版| 亚洲精品国偷自产在线99热| 精品久久在线播放| 亚洲欧美日韩精品久久| 国产91精品久久久| 91国产在线精品| 按摩亚洲人久久| 777国产偷窥盗摄精品视频| 亚洲欧洲激情在线| 精品一区二区亚洲| 亚洲午夜小视频| 精品国产精品三级精品av网址| 亚洲国产小视频在线观看| 欧美激情久久久| 91色中文字幕| 久久久久久久久久av| 国产精品wwww| 日韩成人av网址| 91免费看视频.| 最新国产精品亚洲| 日本中文字幕不卡免费| 国产精品免费小视频| 色综合久久悠悠| 97国产suv精品一区二区62| 国产精品扒开腿做爽爽爽男男| 97碰在线观看| 亚洲欧美制服综合另类| 国产69久久精品成人| 国产一区二区丝袜| 日韩精品有码在线观看| 日韩大片免费观看视频播放| 色av中文字幕一区| 成人免费看片视频| 欧美另类在线观看| 亚洲成人av在线播放| 欧美性xxxxx| 日本精品久久久久影院| 韩曰欧美视频免费观看| 亚洲色图五月天| 在线免费看av不卡| 欧美成年人视频网站| 亚洲国产成人久久| 亚洲人永久免费| 欧美日韩国产91| 亚洲国产日韩欧美在线动漫| 北条麻妃99精品青青久久| 欧美中文在线观看| 精品免费在线视频| 欧美精品xxx| 不卡中文字幕av| 欧美国产日韩一区| 亚洲欧洲一区二区三区在线观看| 久久综合免费视频影院| 亚洲人成欧美中文字幕| 日韩不卡中文字幕| 在线视频欧美日韩| 欧美亚洲视频在线看网址| 欧美高清无遮挡| 伊人久久久久久久久久久久久| 久久91亚洲人成电影网站| 国产精品一区二区久久久| 97精品免费视频| 国产精品入口夜色视频大尺度| 亚洲国产精品成人一区二区| 欧美日韩亚洲91| 日韩成人av一区| 韩日欧美一区二区| 91精品国产91久久久久福利| 这里只有精品丝袜| 91久久夜色精品国产网站| 亚洲伊人一本大道中文字幕| 国产精品福利久久久| 88国产精品欧美一区二区三区| 91亚洲国产精品| 91av在线播放视频| 欧美激情视频三区| 亚洲欧美制服第一页| 最近2019年日本中文免费字幕| 久久精品99久久香蕉国产色戒| 国产成人精品在线视频| 亚洲人在线观看| 91精品国产高清| 91天堂在线观看| 在线亚洲欧美视频| 久久人人97超碰精品888|