Java 8章 IO 编程题

这篇博客通过三个编程题目深入探讨Java 8的IO编程,涉及DataInputStream、BufferedInputStream的使用,字符串Unicode编码的显示,文件内容的合并,以及随机数的生成与统计。每个题目都详细讲解了思路、代码实现以及可能遇到的问题和解决方案。
摘要由CSDN通过智能技术生成

题目一

利用DataInputStream类和BufferedInputStream类编写一个程序,实现从键盘读入一个字符串,在显示器上显示前两个字符的Unicode码以及后面的所有字符。

结果

请输入字符串
asdfjkl
字符一的Unicode码:97
字符二的Unicode码:115
d f j k l

思路

DataInputStream 类继承自 FilterInputStream 类,而 FilterInputStream 类继承自 InputStream 类。
因而DataInputStream 类可以实现更多的功能。
BufferedInputStream 是套在InputStream 外,起着缓存的功能,用于改善InputStream 的性能。

在读取流数据之前,先造好管子,再读取流中的信息。前两次直接打印,第二次之后读取的数据后按照字符打印。

代码

package charper_eight_IO;

import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.IOException;

public class TestOne {

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

        System.out.println("请输入字符串");
        BufferedInputStream bIS = new BufferedInputStream(new 
                DataInputStream(System.in));

        System.out.println("字符一的Unicode码:" + bIS.read());       
        System.out.println("字符二的Unicode码:" + bIS.read());

        int ch = -1;
        while((ch = bIS.read())!=-1){
            System.out.print((char) ch + "\t");
        }

        System.exit(0);
    }

}

问题

如果我们换一种方式,将第二次之后读取的数据放进一个字节数组中,并打印read() 方法的返回值,我们会看到一些不一样的东西。

package charper_eight_IO;

import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.IOException;

public class TestOne {

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

        System.out.println("请输入字符串");
        BufferedInputStream bIS = new BufferedInputStream(new 
                DataInputStream(System.in));

        System.out.println("字符一的Unicode码:" + bIS.read());       
        System.out.println("字符二的Unicode码:" + bIS.read());

        byte[] data = new byte[128];
        int len = bIS.read(data);
        System.out.println("剩余字符长度:"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值