gpt4 book ai didi

java - 如果FileInputStream的read()方法返回1个字节,而java中的char占用2个字节,下面的程序如何工作

转载 作者:行者123 更新时间:2023-12-01 11:41:00 25 4
gpt4 key购买 nike

如果FileInputStreamread()方法返回1个字节,而java中的char占用2个字节,那么整数转换如何返回read()char 返回字符。下面是程序

import java.io.File;
import java.io.FileInputStream;

public class ReadFile {
public static void main(String[] args) throws Exception {
File file = new File("J:\\Java\\Programs\\xanadu.txt");
FileInputStream stream = new FileInputStream(file);
int i, iteration = 0;
while ((i = stream.read()) != -1) {
System.out.print((char) i);
iteration++;
}
System.out.println("\nNo of Iteration :" + iteration);
}
}

文件内容是:StackOverFlow

输出是:堆栈溢出迭代次数:13

因此文件包含 13 个字符,即 26 个字节。怎么迭代次数是13次。

如果有解释此行为的链接,请分享。

最佳答案

该文件包含 13 个 ASCII 字符(1 个 ASCII 字符为 1 个字节)。当存储在内存中时,在 Java 中,每个字符可能消耗 2 个字节。然而,它们都在基本平面上......并且它们可以存储为UTF-8。虽然单个 Java 字符可能占用 2 个字节的内存,但当创建单个字符是包含 Supplementary_Multilingual_Plane 中的值的 String 的一部分时,它也可能需要更多的内存。 .

关于java - 如果FileInputStream的read()方法返回1个字节,而java中的char占用2个字节,下面的程序如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29529639/

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