首页编程java编程java中read 返回什么意思(java的输入流的read方法返回的是什么呢)

java中read 返回什么意思(java的输入流的read方法返回的是什么呢)

编程之家2023-10-1191次浏览

本篇文章给大家谈谈java中read 返回什么意思,以及java的输入流的read方法返回的是什么呢对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

java中read 返回什么意思(java的输入流的read方法返回的是什么呢)

java 解释下readUTF()和writeUTF()的意思吧

writeUTF(String str);

write(int b);

writeBytes(String s);

java中read 返回什么意思(java的输入流的read方法返回的是什么呢)

这几个方法可以传的参数不一样。

writeUTF和writeBytes都可以传String类型的参数,而write就不行了。

-->2008/04/01

java中read 返回什么意思(java的输入流的read方法返回的是什么呢)

public final void writeUTF(String str)

throws IOException以与机器无关方式使用 UTF-8修改版编码将一个字符串写入基础输出流。

首先,通过 writeShort方法将两个字节写入输出流,表示后跟的字节数。该值是实际写出的字节数,不是字符串的长度。根据此长度,使用字符的 UTF-8修改版编码按顺序输出字符串的每个字符。如果没有抛出异常,则计数器 written增加写入输出流的字节总数。该值至少是 2加 str的长度,最多是 2加 str的三倍长度。

String readUTF()

throws IOException读入一个已使用 UTF-8修改版格式编码的字符串。readUTF的常规协定是:该方法读取使用 UTF-8修改版格式编码的 Unicode字符串的表示形式;然后以 String的形式返回此字符串。

首先读取两个字节,并使用它们构造一个无符号 16位整数,构造方式与 readUnsignedShort方法的方式完全相同。该整数值被称为 UTF长度,它指定要读取的额外字节数。然后成组地将这些字节转换为字符。每组的长度根据该组第一个字节的值计算。紧跟在某个组后面的字节(如果有)是下一组的第一个字节。

如果组的第一个字节与位模式 0xxxxxxx(其中 x表示“可能为 0或 1”)匹配,则该组只有这一个字节。该字节被左侧补零,转换成一个字符。

如果组的第一个字节与位模式 110xxxxx匹配,则该组只由字节 a和另一个字节 b组成。如果没有字节 b(因为字节 a是要读取的最后一个字节),或者字节 b与位模式 10xxxxxx不匹配,则抛出 UTFDataFormatException。否则,将该组转换成字符:

(char)(((a& 0x1F)<< 6)|(b& 0x3F))

如果组的第一个字节与位模式 1110xxxx匹配,则该组由字节 a和另外两个字节 b和 c组成。如果没有字节 c(因为字节 a是要读取的最后两个字节之一),或者字节 b或字节 c与位模式 10xxxxxx不匹配,则抛出 UTFDataFormatException。否则,将该组转换成字符:

(char)(((a& 0x0F)<< 12)|((b& 0x3F)<< 6)|(c& 0x3F))

如果组的第一个字节与模式 1111xxxx或模式 10xxxxxx匹配,则抛出 UTFDataFormatException。

如果在执行整个过程中的任意时间到达文件末尾,则抛出 EOFException。

在通过此过程将每个组转换成字符后,按照从输入流中读取相应组的顺序,将这些字符收集在一起,形成一个 String,然后该字符串将被返回。

可以使用 DataOutput接口的 writeUTF方法写入适合此方法读取的数据。

java流的read方法返回值怎么来的

inputstream的read函数在很多地方都有用到比如键盘输入或文件流输入或socket输入

read的返回值并不是真正得到的数据,而是得到的数据的长度

你每次会希望读入一定的长度,比如你想读10个byte如果剩余的byte数足够,将会读满所需要的字节数,如果剩余的字节数不够将会返回一个小于你所读的数如果读到-1表示读取结束(经常在socket和文件读取遇到)

java的输入流的read方法返回的是什么呢

read(bytes)返回的是个整数,是每次填充给bytes数组的长度。

这个方法在按bytes数组读取文件。不等于-1是因为出现-1就说明文件已经读取结束了。

可以通过这个方法,进行循环读取文件内容,当read返回值为-1的时候,表示文件读取完毕,就可以显示文件内容,进行相应的操作。

java中read()方法的使用

字节流的read()方法是操作字节流的,字符流的read()方法是操作unicode字符的。

可以通过BufferedReader流的形式进行流缓存,通过read()方法获取到缓存的内容。

示例代码:

BufferedReader bre= null;

try{

String file="X:/xxxx/xxxx.txt";//文件地址

bre= new BufferedReader(new FileReader(file));//获取到的bre就是整个文件的缓存流

while( bre.read()!=-1){//判断是否为最后一个字节,若是则结束循环

System.out.println(bre.read());//输出读到的内容

};

bre.close();//切记需要写close()关闭流

备注:字节流读取过程中很容易出现乱码,建议可以用readLine方式进行逐行的读取。

好了,文章到这里就结束啦,如果本次分享的java中read 返回什么意思和java的输入流的read方法返回的是什么呢问题对您有所帮助,还望关注下本站哦!

java中set是什么意思?java中的get 和set 是什么意思java中链表是什么 java里的链表指的是什么为什么需要链表