gpt4 book ai didi

java - Java中使用InputStreamReader类时缺少字符

转载 作者:行者123 更新时间:2023-12-01 17:38:27 24 4
gpt4 key购买 nike

我编写了一些代码来逐个字符地读取文本文件,然后将其打印到屏幕上,但结果让我感到困惑,如下:

这是我写的代码

import java.io.*;
import java.nio.charset.StandardCharsets;
public class learnIO
{


public static void main(String[] args) throws IOException{

var in = new InputStreamReader(new FileInputStream("test1.txt"), StandardCharsets.UTF_8);
while(in.read() != -1){

System.out.println((char)in.read());
}


}


}

文件的内容和编码方案:

file test1.txt

test1.txt: ASCII text

cat test1.txt

hello, world!

结果是:

e

l

,

w

r

d

有些字符丢失了,为什么会出现这种情况?

最佳答案

InputStreamReader的read方法返回类型为int,占用4个字节并且 char 类型是 2 个字节,因此将 int 转换为 char 会跳过 2 个字节

引用https://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html

关于java - Java中使用InputStreamReader类时缺少字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61005337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com