久久精品国产精品青草色艺_www.一区_国内精品免费久久久久妲己_免费的性爱视频

Java的DataInputStream的readUTF方法是怎么讀取字符串的????

大神們好,我是新手小白,今天在學(xué)習(xí)Java的IO操作中遇到一個(gè)百思不得其解的問(wèn)題,下面的代碼是今天做的關(guān)于DataInputStream類的練習(xí),我很不解為什么DataInputStream的readUTF方法不需要任何參數(shù),但是卻在讀取的時(shí)候可以知道自己讀取多長(zhǎng),不明白他是怎么知道我當(dāng)初在寫入的時(shí)候?qū)懭氲拈L(zhǎng)度的,他是靠什么控制讀取的范圍的呀???比如下面的程序,readUTF方法就可以知道讀取"昨天"這兩個(gè)字,是怎么知道我就剛好需要讀這兩個(gè)字,而不會(huì)把下面的內(nèi)容給讀出。很是感謝大家的回答

package com.zhang.hello;import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;public class IODataStreamTest { public static void main(String[] args) throws IOException {File file=new File("f:/zhang.dat"); if(!file.exists<愛(ài)尬聊_健康養(yǎng)生>()){ file.createNewFile(); } DataInputStream dis=new DataInputStream(new FileInputStream(file)); DataOutputStream dos=new DataOutputStream(new FileOutputStream(file));int testInt=2016; double testDouble=10.12; long testLong=20161012;dos.writeInt(testInt); dos.writeDouble(testDouble); dos.writeLong(testLong); //utf-8 一個(gè)中文占3個(gè)字節(jié) dos.writeUTF("昨天"); dos.writeUTF("今天是個(gè)好日子"); dos.close();int testRInt=dis.readInt(); System.out.println(testRInt); double testRDouble=dis.readDouble(); System.out.println(testRDouble); long testRLong=dis.readLong(); System.out.println(testRLong); String testRStr=dis.readUTF();//為什么readUTF知道讀取多長(zhǎng) System.out.println(testRStr); dis.close(); } }

執(zhí)行結(jié)果:
2016
10.12
20161012
昨天


john_liu1 14小時(shí)前

DataInputStream


無(wú)盡虛空惡魔 14小時(shí)前

看源碼,調(diào)用的第一句就獲取了長(zhǎng)度int utflen = in.readUnsignedShort();這個(gè)方法的Doc :


gladstone 14小時(shí)前

Reads two input bytes and returns an int value in the range 0 through


360U3383305454 13小時(shí)前

readUTF的Doc:


沒(méi)你的地方不是家 13小時(shí)前

Let a be the first byte read and b be the second byte. The value returned is:


另木子 13小時(shí)前

IOException - if an I/O error occurs.


編輯 舉報(bào) 2023-06-23 14:14

0個(gè)評(píng)論

暫無(wú)評(píng)論...
驗(yàn)證碼 換一張
相關(guān)內(nèi)容