java标点符号_java的标点符号
使⽤inputsteamreader bufferreader之类,指定字符集,就能读取出字符了,⼀般不会⾃⾏判断要读多少个字节才是⼀个字符>#确实如此,不需要事先判断。 ⼀个⼀个地读到⽂档结尾(EOF), 就终⽌读取操作。再将已得到的字节数据,通过给定的字符编码(字符集),就能转换成所要的字符。>#
在 Java 语⾔中,⽤字节流读取数据,不需要事先判断 "是应该单字节读取,还是双字节读取,或者是3字节读取以及4字节读取...."。事实上,字节流是依次逐个读取字节的。 如下案例说明以上事实。
已知两个⽂档 和 的内容分别是:"hello world!" 和 "世界, 你好!"。  调⽤ FileInputStream 的 int read() ⽅法,依次读取两个⽂档。从头读取每个⽂档的时候,按字节依次读取,⼀旦读取到⽂档结尾(EOF), 被调⽤的⽅法 read() 便返回 整形数 -1,显⽰读取数据的任务完成。Java 使⽤ UNICODE (汉字占2个字节,ASCII 码所包括的字符,如英⽂字母,标点符号,空格,占1个字节) 进⾏"翻译"。结果显⽰, 从⽂档 中, 读取到12个字节。从⽂档 中, 读取到11个字节。
import java.io.*;
public class Test_Input {
static void test(String f) throws IOException{
FileInputStream fin = new FileInputStream(f);
byte[] buffer = new byte[1024];
int len=0;
byte b =(byte) ad();
while (b!= -1){java语言使用的字符码集是
buffer[len++]=b;
b =(byte) ad();
}
String str = new String(buffer,0,len);
System.out.println(str);
System.out.println("从⽂档\" " + f + " \" 中读取到: " + len + "个字节。");
fin.close();
}
public static void main(String[] args) throws IOException{
test("");
test("");
}
}
cmd:
D:\java\test\OS_China\InputStream>javac Test_Input.java
D:\java\test\OS_China\InputStream>java Test_Input
hello world!
从⽂档" " 中读取到: 12个字节。
世界, 你好!
从⽂档" " 中读取到: 11个字节。
>#
如果已知字节流是纯⽂本,搞清楚字符集,按byte[]读取,再传给new String(bytes, charset)转换成⽂本就可以,如:
String s = new String(byteBuffer.array(), StandardCharsets.UTF_8);
如果不知道不是纯⽂本,要搞清楚内容是由什么组成的,按类型逐段读取(如Int()),需要注意的是C语⾔表达数值通常是⼤端序的,⽽java通常是⼩端序,可以通过"serveBytes(value)"来转换(Integer替换成对应的Long、Double等类型)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论