电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

JAVA教程 第七講 Swing用戶界面設計(二)

瀏覽:7日期:2024-03-05 16:29:40

4.5.2 文件的順序處理

類FileInputStream和FileOutputStream用來進行文件I/O處理,由它們所提供的方法可以打開本地主機上的文件,并進行順序的讀/寫。例如,下列的語句段是順序讀取文件名為text的文件里的內容,并顯示在控制臺上面,直到文件結束為止。

FileInputStream fis;

try{

fis = new FileInputStream( 'text' );

System.out.print( 'content of text is : ');

 int b;

 while( (b=fis.read())!=-1 ) //順序讀取文件text里的內容并賦值

給整型變量b,直到文件結束為止。

 {  

 System.out.print( (char)b );

 }

}catch( FileNotFoundException e ){

System.out.println( e );

}catch( IOException e ){

System.out.println( e );

}

4.5.3 隨機訪問文件

對于InputStream 和OutputStream 來說,它們的實例都是順序訪問流,也就是說,只能對文件進行順序地讀/寫。隨機訪問文件則允許對文件內容進行隨機讀/寫。在java中,類RandomAccessFile 提供了隨機訪問文件的方法。類RandomAccessFile的聲明為:

public class RandomAccessFile extends Object implements DataInput, DataOutput

接口DataInput 中定義的方法主要包括從流中讀取基本類型的數據、讀取一行數據、或者讀取指定長度的字節數。如:readBoolean( )、readInt( )、readLine( )、readFully( ) 等。

接口DataOutput 中定義的方法主要是向流中寫入基本類型的數據、或者寫入一定長度的字節數組。如:writeChar( )、writeDouble( )、write( ) 等。 下面詳細介紹RandomAccessFile類中的方法。

◇ 構造方法:

RandomAccessFile(String name,String mode); //name是文件名,mode

//是打開方式,例如'r'表示只讀,'rw'表示可讀寫,'

RandomAccessFile(File file,String mode); //file是文件對象

◇ 文件指針的操作

long getFilePointer( ); //用于得到當前的文件指針

void seek( long pos ); //用于移動文件指針到指定的位置

int skipBytes( int n ); //使文件指針向前移動指定的n個字節

4.6 過濾流

過濾流在讀/寫數據的同時可以對數據進行處理,它提供了同步機制,使得某一時刻只有一個線程可以訪問一個I/O流,以防止多個線程同時對一個I/O流進行操作所帶來的意想不到的結果。類FilterInputStream和FilterOutputStream分別作為所有過濾輸入流和輸出流的父類

過濾流類層次:

java.lang.Object

|

+----java.io.InputStream

|

+----java.io.FilterInputStream

為了使用一個過濾流,必須首先把過濾流連接到某個輸入/出流上,通常通過在構造方法的參數中指定所要連接的輸入/出流來實現。例如:

FilterInputStream( InputStream in );

FilterOutputStream( OutputStream out );

4.6.1 幾種常見的過濾流

◇ BufferedInputStream和BufferedOutputStream

  緩沖流,用于提高輸入/輸出處理的效率。

◇ DataInputStream 和 DataOutputStream

  不僅能讀/寫數據流,而且能讀/寫各種的java語言的基本類型,如:boolean,int,float等。

◇ LineNumberInputStream

  除了提供對輸入處理的支持外,LineNumberInputStream可以記錄當前的行號。

◇ PushbackInputStream

  提供了一個方法可以把剛讀過的字節退回到輸入流中,以便重新再讀一遍。

◇ PrintStream

  打印流的作用是把Java語言的內構類型以其字符表示形式送到相應的輸出流。

4.7 字符流的處理

java中提供了處理以16位的Unicode碼表示的字符流的類,即以Reader和Writer 為基類派生出的一系列類。

4.7.1 Reader和Writer

這兩個類是抽象類,只是提供了一系列用于字符流處理的接口,不能生成這兩個類的實例,只能通過使用由它們派生出來的子類對象來處理字符流。

1.Reader類是處理所有字符流輸入類的父類。

◇ 讀取字符

public int read() throws IOException; //讀取一個字符,返回值為讀取的字符

public int read(char cbuf[]) throws IOException; /*讀取一系列字符到數組cbuf[]中,返回值為實際讀取的字符的數量*/

public abstract int read(char cbuf[],int off,int len) throws IOException;

/*讀取len個字符,從數組cbuf[]的下標off處開始存放,返回值為實際讀取的字符數量,該方法必須由子類實現*/

◇ 標記流

public boolean markSupported(); //判斷當前流是否支持做標記

public void mark(int readAheadLimit) throws IOException;

//給當前流作標記,最多支持readAheadLimit個字符的回溯。

public void reset() throws IOException; //將當前流重置到做標記處

◇ 關閉流

public abstract void close() throws IOException;

2. Writer類是處理所有字符流輸出類的父類。

◇ 向輸出流寫入字符

public void write(int c) throws IOException;

//將整型值c的低16位寫入輸出流

public void write(char cbuf[]) throws IOException;

//將字符數組cbuf[]寫入輸出流

public abstract void write(char cbuf[],int off,int len) throws IOException;

//將字符數組cbuf[]中的從索引為off的位置處開始的len個字符寫入輸出流

public void write(String str) throws IOException;

//將字符串str中的字符寫入輸出流

public void write(String str,int off,int len) throws IOException;

//將字符串str 中從索引off開始處的len個字符寫入輸出流

◇ flush( )

刷空輸出流,并輸出所有被緩存的字節。

◇ 關閉流

public abstract void close() throws IOException;

4.7.2 InputStreamReader和OutputStreamWriter

java.io包中用于處理字符流的最基本的類,用來在字節流和字符流之間作為中介。

◇ 生成流對象

public InputStreamReader(InputStream in);

/*in是字節流,而InputStreamReader是字符流,但是其來源是字節流in,

因此InputStreamReader就可以把字節流in轉換成字符流處理。/*

public InputStreamReader(InputStream in,String enc) throws UnsupportedEncodingException;

/*enc是編碼方式,就是從字節流到字符流進行轉換時所采用的編碼方式,

 例如 ISO8859-1,UTF-8,UTF-16等等*/

public OutputStreamWriter(OutputStream out);

/*out是字節流,而OutputStreamReader是字符流 */

public OutputStreamWriter(OutputStream out,String enc) throws UnsupportedEncodingException; //enc是編碼方式

InputStreamReader和OutputStreamWriter的方法:

◇ 讀入和寫出字符

基本同Reader和Writer。

◇ 獲取當前編碼方式

public String getEncoding();

◇ 關閉流

public void close() throws IOException;

4.7.3 BufferedReader和BufferedWriter

◇ 生成流對象

public BufferedReader(Reader in); //使用缺省的緩沖區大小

public BufferedReader(Reader in, int sz); //sz為緩沖區的大小

public BufferedWriter(Writer out);

public BufferedWriter(Writer out, int sz);

標簽: Java
相關文章:
主站蜘蛛池模板: 广州冷却塔维修厂家_冷却塔修理_凉水塔风机电机填料抢修-广东康明节能空调有限公司 | 安徽免检低氮锅炉_合肥燃油锅炉_安徽蒸汽发生器_合肥燃气锅炉-合肥扬诺锅炉有限公司 | 座椅式升降机_无障碍升降平台_残疾人升降平台-南京明顺机械设备有限公司 | 防锈油-助焊剂-光学玻璃清洗剂-贝塔防锈油生产厂家 | 雷达液位计_超声波风速风向仪_雨量传感器_辐射传感器-山东风途物联网 | 压缩空气检测_气体_水质找上海京工-服务专业、价格合理 | 温湿度记录纸_圆盘_横河记录纸|霍尼韦尔记录仪-广州汤米斯机电设备有限公司 | 天津仓库出租网-天津电商仓库-天津云仓一件代发-【博程云仓】 | 中国产业发展研究网 - 提供行业研究报告 可行性研究报告 投资咨询 市场调研服务 | 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | 洗地机-全自动/手推式洗地机-扫地车厂家_扬子清洁设备 | 温州富欧金属封头-不锈钢封头厂家 | 废水处理-废气处理-工业废水处理-工业废气处理工程-深圳丰绿环保废气处理公司 | 深圳3D打印服务-3D打印加工-手板模型加工厂-悟空打印坊 | 媒介云-全网整合营销_成都新闻媒体发稿_软文发布平台 | 英思科GTD-3000EX(美国英思科气体检测仪MX4MX6)百科-北京嘉华众信科技有限公司 | 鲁尔圆锥接头多功能测试仪-留置针测试仪-上海威夏环保科技有限公司 | 不锈钢反应釜,不锈钢反应釜厂家-价格-威海鑫泰化工机械有限公司 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 金库门,金库房,金库门厂家,金库门价格-河北特旺柜业有限公司 | 临沂招聘网_人才市场_招聘信息_求职招聘找工作请认准【马头商标】 | 布袋式除尘器|木工除尘器|螺旋输送机|斗式提升机|刮板输送机|除尘器配件-泊头市德佳环保设备 | 石英砂矿石色选机_履带辣椒色选机_X光异物检测机-合肥幼狮光电科技 | 恒温恒湿箱(药品/保健品/食品/半导体/细菌)-兰贝石(北京)科技有限公司 | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | 低浓度恒温恒湿称量系统,强光光照培养箱-上海三腾仪器有限公司 | 无线对讲-无线对讲系统解决方案-重庆畅博通信 | 广州展台特装搭建商|特装展位设计搭建|展会特装搭建|特装展台制作设计|展览特装公司 | 台湾Apex减速机_APEX行星减速机_台湾精锐减速机厂家代理【现货】-杭州摩森机电 | 闪蒸干燥机-喷雾干燥机-带式干燥机-桨叶干燥机-[常州佳一干燥设备] | 振动台-振动试验台-振动冲击台-广东剑乔试验设备有限公司 | 上海风淋室_上海风淋室厂家_上海风淋室价格_上海伯淋 | 寮步纸箱厂_东莞纸箱厂 _东莞纸箱加工厂-东莞市寮步恒辉纸制品厂 | 回转炉,外热式回转窑,回转窑炉-淄博圣元窑炉工程有限公司 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | POM塑料_PBT材料「进口」聚甲醛POM杜邦原料、加纤PBT塑料报价格找利隆塑料 | 臭氧老化试验箱,高低温试验箱,恒温恒湿试验箱,防水试验设备-苏州亚诺天下仪器有限公司 | 阴离子聚丙烯酰胺价格_PAM_高分子聚丙烯酰胺厂家-河南泰航净水材料有限公司 | 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 | 沙盘模型公司_沙盘模型制作公司_建筑模型公司_工业机械模型制作厂家 | 超声波气象站_防爆气象站_空气质量监测站_负氧离子检测仪-风途物联网 |