标准输入输出流概述和输出语句

本文深入探讨了Java中的标准输入输出流,包括System.in和System.out的使用,以及如何通过System.setIn和System.setOut方法修改这些流。通过示例代码,展示了如何将输入流从键盘重定向到文件,并将输出流从控制台重定向到另一个文件。

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

标准输入输出流概述和输出语句

  • 1.什么是标准输入输出流
    • System.in是InputStream,标准输入流,默认可以从键盘输入读取字节数据。
    • System.out是PrintStream,标注输出流,默认可以向Console中输出字符和字节数据。
  • 2.修改标准输入输出流
    • 修改输入流:System.setIn(InputStream)

    • 修改输出流:System.setOut(PrintStream)

        System.setIn(new FileInputStream("a.txt"));			//修改标准输入流
        System.setOut(new PrintStream("b.txt"));				//修改标准输出流
        
        InputStream in = System.in;							//获取标准输入流
        PrintStream ps = System.out;							//获取标准输出流
        int b;
        while((b = in.read()) != -1) {						//从a.txt上读取数据
        	ps.write(b);										//将数据写到b.txt上
        }
        
        in.close();
        ps.close();
      
package com.heima.otherio;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;

public class Demo08_SystemInOut {

	/**
	 * @param args
	 * 只有内存和硬盘产生一个关联才需要关流.
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
//		demo01();
		System.setIn(new FileInputStream("a.txt"));		//改变标准输入流
		System.setOut(new PrintStream("b.txt"));		//改变标注输出流
		
		InputStream is = System.in;						//获取标准的键盘输入流,默认指向键盘,改变后指向文件
		PrintStream ps = System.out;					//获取标准输出流,默认指向的是控制台,改变后就指向文件
		
		int b;
		while((b = is.read()) != -1) {
			ps.write(b);
		}
		//System.out.println();							//也是一个输出流,不用关,因为没有和硬盘上的文件产生关联的管道
		is.close();
		ps.close();
	}

	private static void demo01() throws IOException {
		InputStream is = System.in;
		int x = is.read();		//只读第一个字节
		System.out.println(x);

		is.close();				//这里的流不需要关的,因为没有让内存和硬盘产生关联.
		
		InputStream is2 = System.in;
		int y = is2.read();		//只读第一个字节
		System.out.println(y);

		is.close();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

左绍骏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值