String(byte[] bytes, int offset, int length)的参数问题


(1)问题说明

同学今天突然向我问了一个Java中流输出的问题,在这里记录一下。

在这里插入图片描述

package Test;

import java.io.FileNotFoundException;
import java.io.FileReader;

public class Demo {
	public static void main(String[] args) throws Exception {
		//创建读取对象
		FileReader fr = new FileReader("D://reader.txt");
		//定义一个长度为3的字符数组容器,用于存储读到的字符
		char[] buf = new char[3];	
		int num = 0;
		while((num=fr.read(buf))!=-1){
			System.out.println(new String(buf,0,num));
		}
		fr.close();
	}
}

上面的代码运行后输出结果如下:
在这里插入图片描述

(2)关于String方法的后三个参数

通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。

三个参数 说明
bytes 要解码为字符的名为byte的数组
offset 要解码的第一个 byte 的索引
length 要解码的 byte 数 的长度

可以这样理解:如果把bytes数组比作一个从内存中取数据的容器,那么,后两个参数就相当于再在这个容器中划分大小。
在这里插入图片描述

(3)该方法的API

在这里插入图片描述

发布了368 篇原创文章 · 获赞 984 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/weixin_43691058/article/details/104110100
int