Java之IO流

本文介绍了Java中的IO流,包括从控制台读取多字符和字符串,控制台输出,以及读写文件。重点讨论了InputStreamReader、BufferedReader的read()和readLine()方法,FileInputStream和FileOutputStream的使用,以及字节流和字符流的区别。此外,还提到了字符流缓冲区的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java.io包中几乎包含了所有操作输入、输出所需要的类。

一个流(stream)可以理解为一个数据序列,输入流表示从一个源读取数据,输出流表示向一个目标写数据。

从控制台读取多字符输入

此程序演示用read()方法从控制台不断读取字符,直到用户输入'a'。

//使用BufferedReader在控制台读取字符
import java.io.*;
public class FirstTest {
    public static void main(String args[]) throws IOException{//是java中的throws语句
        char c;
        //使用system.in创建BufferedReader
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // BufferedReader类从字符输入流中读取文本并缓冲字符,以便有效地读取字符,数组和行
        System.out.println("输入字符,按下‘a’键退出");
        do{
            c = (char)br.read();
            //调用read方法时,它从输入流读取一个字符并把该字符作为一个整数值返回
            //当流结束时返回-1,该方法抛出IOException
            System.out.println(c);
        }while(c!='a');
    }
}

运行结果

以下为涉及知识点。 

1.throws关键字

如果一个方法没有捕获到检查性异常,那么该方法必须使用throws关键字来声明。throws关键字放在方法签名的尾部。

2.InputStreamReader流

API文档说明:InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。

每次调用 InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。

为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如:

 BufferedReader in
   = new BufferedReader(new InputStreamReader(System.in));

3.read()方法

API文档说明:

public int read()
         throws IOException

读取单个字符。

覆盖:

类 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值