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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

輸出和輸入

2019-11-14 10:54:38
字體:
供稿:網(wǎng)友

文本的輸入和輸出

OutputStreamWriter類將使用選定的字符編碼方式,把Unicode字符流轉(zhuǎn)換為字節(jié)流。相反地, InputStreamReader類將包含字節(jié)(用某種字符編碼方式表示的字符)的輸入流轉(zhuǎn)換為可以產(chǎn)生Unicode字符的讀入器。

對于文本輸出,你可能希望使用PRintWriter。這個類擁有以文本格式打印字符串和數(shù)字的方法,它甚至還有一個將PrintWriter鏈接到FileWriter的方便方法。

PrintWriter pw = new PrintWriter("f://f.txt");PrintWriter p = new PrintWriter(new FileWriter("f://f.txt"));//這兩個相同為了寫出到打印寫出器,需要使用與使用System.out時相同的方法print、 println和printf。你可以用這些方法來打印數(shù)字( int、 short、 long、 float、 double)、字符、boolean值、字符串和對象。如果寫出器設(shè)置為自動清空模式,那么只要println被調(diào)用,緩沖區(qū)中的所有字符都會被發(fā)送到它們的目的地(打印寫出器總是帶緩沖區(qū)的)。默認(rèn)情況下,自動清空機(jī)制是不使能的。你可以通過使用PrintWriter(Writer out, Boolean autoFlush)來使能或禁用自動清空機(jī)制。boolean checkError()如果產(chǎn)生格式化或輸出錯誤,則返回true。一旦這個流碰到了錯誤,它就受到了感染,并且所有對checkError的調(diào)用都將返回true。以二進(jìn)制格式寫出數(shù)據(jù),需要使用DataOutputStream。以文本格式寫出數(shù)據(jù),需要使用PrintWriter。在java SE 5.0之前,處理文本輸入的惟一方式就是通過BufferedReader類,它擁有一個readLine方法,使得我們可以讀入一行文本。readLine方法在沒有輸入時返回null。

FileReader f = new FileReader("f://f.txt");BufferedReader bf = new BufferedReader(f);String l;while((l=bf.readLine())!=null){	System.out.println(l);}還可以使用Scanner來讀取

FileReader f = new FileReader("f://f.txt");Scanner s = new Scanner(f);while(s.hasNextLine()){	System.out.println(s.nextLine());}

charset  static SortedMap availableCharsets()獲取這個虛擬機(jī)可用的所有字符集。返回一個映射表,它的鍵是字符集的名字,值是字符集。static Charset forName(String name)獲取給定名字的字符集Set aliases()返回這個字符集的別名集。ByteBuffer encode(String str)將給定的字符串編碼為字節(jié)序列。CharBuffer decode(ByteBuffer buffer)解碼給定的字節(jié)序列。無法識別的輸入將被轉(zhuǎn)換成Unicode的“替代字符” ('/uFFFD').
ByteBufferbyte[] array()返回這個緩沖區(qū)所管理的字節(jié)數(shù)組。static ByteBuffer wrap(byte[] bytes)static ByteBuffer wrap(byte[] bytes, int offset, int length)返回管理給定的字節(jié)數(shù)組或給定字節(jié)數(shù)組的某個范圍的字節(jié)緩沖區(qū)。
CharBuffer  char[] array()返回這個緩沖區(qū)所管理的碼元數(shù)組。char charAt(int index)返回給定索引處的碼元。String toString()返回由這個緩沖區(qū)所管理的碼元構(gòu)成的字符串。二進(jìn)制的讀寫DataOutput接口定義了用于以二進(jìn)制格式寫數(shù)組、字符、 boolean值和字符串的方法。
writeCharswriteBytewriteInt....writeUTf因?yàn)闆]有其他方法會使用UTF-8的這種修訂,所以你應(yīng)該只在寫出用于Java虛擬機(jī)的字符串時才使用writeUTF方法來,例如,當(dāng)你需要編寫一個生成字節(jié)碼的程序時。對于其他的目的,都應(yīng)該使用writeChars方法。

為了讀回數(shù)據(jù),可以使用在DataInput接口中定義的下列方法.

readIntreadChar....readUTF
void readFully(byte[] b)將字節(jié)讀入到數(shù)組b中,其間阻塞直至所有字節(jié)都讀入。
int skipBytes(int n)跳過n個字節(jié),其間阻塞直至所有字節(jié)都被跳過。DataInputStream類實(shí)現(xiàn)了DataInput接口,從文件中讀入二進(jìn)制數(shù)據(jù),你需要將DataInputStream與某個字節(jié)源相組合,比如FileInputStream與此類似,要想寫出二進(jìn)制數(shù)據(jù),你可以使用實(shí)現(xiàn)了DataOutput接口的DataOutputStream類。隨機(jī)訪問文件

RandomaccessFile類可以在文件中的任何位置查找或?qū)懭霐?shù)據(jù)。磁盤文件都是隨機(jī)訪問的,但是從網(wǎng)絡(luò)而來的數(shù)據(jù)流卻不是。你可以打開一個隨機(jī)訪問文件,只用于讀入或者同時用于讀寫,我們可以通過使用字符串“ r”(用于讀入訪問)或“ rw”(用于讀入/寫出訪問)作為構(gòu)造器的第二個參數(shù)來指定這個選項(xiàng)。

RandomAccessFile r = new RandomAccessFile("f://f.txt", "r");“ r”表示只讀模式; “ rw”表示讀/寫模式; “ rws”表示每次更新時,都對數(shù)據(jù)和元數(shù)據(jù)的寫磁盤操作進(jìn)行同步的讀/寫模式; “ rwd”表示每次更新時,只對數(shù)據(jù)的寫磁盤操作進(jìn)行同步的讀/寫模式RandomAccessFile rw = new RandomAccessFile("f://f.txt", "rw");當(dāng)你將已有文件打開成RandomAccessFile時,這個文件并不會被刪除。隨機(jī)訪問文件有一個表示下一個將被讀入或?qū)懗龅淖止?jié)所處位置的文件指針, seek方法可以將這個文件指針設(shè)置到文件內(nèi)部的任意字節(jié)位置, seek的參數(shù)是一個long類型的整數(shù),它的值位于0到文件按照字節(jié)來度量的長度之間。getFilePointer方法將返回文件指針的當(dāng)前位置。RandomAccessFile類同時實(shí)現(xiàn)了DataInput和DataOutput接口。為了讀寫隨機(jī)訪問文件,可以使用諸如readInt/writeInt和readChar/writeChar之類的方法。要確定文件中的字節(jié)總數(shù),可以使用length方法。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 广南县| 兴海县| 牟定县| 双城市| 金沙县| 江孜县| 神农架林区| 宜都市| 城市| 永川市| 宜章县| 怀柔区| 卓资县| 清苑县| 郯城县| 樟树市| 年辖:市辖区| 孟州市| 屏边| 三江| 浪卡子县| 夹江县| 尉犁县| 桐乡市| 平江县| 吉安市| 汨罗市| 永胜县| 黄大仙区| 延边| 精河县| 贵州省| 阜宁县| 稻城县| 徐水县| 大邑县| 娱乐| 邹平县| 嘉鱼县| 泰来县| 惠来县|