【Java】Input,Output,Stream I/O流 03 系统标准流 & 打印流
Standard Input,Output Stream 标准输入输出流
- System.in 系统标准输入流
所属InputStream Scanner(System.in);
默认从键盘获取输入信息
- System.out 系统标准输出流
所属PrintStream,是OutputStream的子类,FilterOutputStream System.out.println();
默认从控制台输出信息

- static void setInt(InputStream input) static void setOut(OutputStream output) 重新指定输入和输出的流
使用Scanner实现程序
static void inputPractice(){
// 使用Scanner实现
Scanner input = new Scanner(System.in);
String text = "null";
while( !(text.equals("e") || text.equals("exit")) ){
System.out.println("请输入字符串");
text = input.nextLine();
System.out.println(text.toUpperCase());
}
input.close();
}
用System.in实现
static void inputPractice() throws Exception {
// 使用System.in实现
InputStreamReader inputStreamReader = new InputStreamReader(System.in);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
while( true ){
System.out.println("请输入字符串");
String text = bufferedReader.readLine();
System.out.println(text.toUpperCase());
if ("e".equalsIgnoreCase(text) || "exit".equalsIgnoreCase(text)){
System.out.println("程序结束");
break;
}
}
bufferedReader.close();
}
打印流
PrintStream PrintWriter
- 各种print() 和 println()重载 用于多种数据类型的输出
- PrintStream和PrintWriter 不抛异常,自带flush
- PrintStream打印所有都是以平台默认字符编码转换字节
写入字符非字节的情况使用PrintWriter
- System.out 返回的是PrintStream的实例
向指定文件输出数据
static void printStream(String srcPath) throws Exception {
OutputStream outputStream = new FileOutputStream( new File(srcPath) );
PrintStream printStream = new PrintStream(outputStream,true);
if ( printStream != null) System.setOut(printStream);
for (int i = 0; i < 255; i++) {
System.out.print((char)i + "\t");
if ((i + 1) % 10 == 0) System.out.println();
}
printStream.close();
}
数据流
DataInputStream
DataOutputStream
写入数据和读取数据
static void printData() throws Exception {
DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream(new File("sample.txt")));
dataOutputStream.writeUTF("阿伟输了!!!");
dataOutputStream.flush();
dataOutputStream.writeInt(1001);
dataOutputStream.flush();
dataOutputStream.writeBoolean(true);
dataOutputStream.flush();
dataOutputStream.close();
}
static void readData() throws Exception {
DataInputStream dataInputStream = new DataInputStream(new FileInputStream(new File("sample.txt")));
// 读取数据顺序,要按写入顺序保持一致
String str = dataInputStream.readUTF();
int i = dataInputStream.readInt();
boolean b = dataInputStream.readBoolean();
System.out.println(str);
System.out.println(i);
System.out.println(b);
dataInputStream.close();
}
【Java】Input,Output,Stream I/O流 03 系统标准流 & 打印流的更多相关文章
- BIOS(Basic Input/Output System)是基本输入输出系统的简称
BIOS(Basic Input/Output System)是基本输入输出系统的简称 介绍 操作系统老师说,平时面试学生或者毕业答辩的时候他都会问这个问题,可见这个问题对于计算机专业的学生来说是如此 ...
- Java自学第10期——File类与IO流(输入输出流、处理流、转换流、缓冲流、Properties集合、打印流)
1.IO简介 IO(输入输出)通过java.io包下的类和接口来支持,包下包括输入.输出两种IO流,每种输入输出流又可分为字符流和字节流两大类. 2.File类 File类是io包下与平台无关的文件和 ...
- 标准输入输出() & 打印流 &配置文件
public static void main(String[] args) { //System 类 的 public final static InputStream in = null; // ...
- JAVA input/output 流层次关系图
在java中,input和output流种类繁多,那么它们之间是否有关系呢?答案是肯定的,其中使用到了设计模式,装饰模式 下图来自于HEAD FIRST 设计模式 装饰模式一章 下图来自网络博客:ht ...
- 14、Java文件操作stream、File、IO
1.文件操作涉及到的基本概念 File File类 是文件操作的主要对象中文意义就是 文件 顾名思意 万物皆文件,在计算上看到的所有东西都是文件保存,不管是你的图片.视频.数据库数据等等都是按照基本的 ...
- Java - IO 内存流和打印流
IO 内存流和打印流操作 字符编码 计算机中所有的信息组成都是二进制数据,所有能够描述的中文文字都是经过处理后的结果:所有的语言文字都会使用编码来进行描述,例如:ASCII码 常见编码 GBK/GB2 ...
- java 打印流(PrintStream)
打印流(PrintStream):打印流可以打印任意类型的数据,而且打印流在打印数据之前会将数据转为字符串在进行打印 PrintStream可以接受文件和其他字节输出流,所以打印流是对普通字节输出流的 ...
- java 21 - 12 IO流的打印流
打印流 字节流打印流 PrintStream 字符打印流 PrintWriter打印流的特点: A:只有写数据的,没有读取数据.只能操作目的地,不能操作数据源.(只能写入数据到文件中,而不能从文件中提 ...
- Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)
1.操作基本数据类型的流 1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ...
- Java基础知识强化之IO流笔记59:打印流
1. 打印流 (1)分类: • 字节打印流 PrintStream • 字符打印流 PrintWriter (2)打印流的特点: • 只能写数据,不能读数据 • 只能操作目的地,不能操作数据源 ...
随机推荐
- C#.NET6 ASP.NET CORE MVC 获取客户端IP
重点是拿到HttpContext 对象. 先从Headers["Cdn-Src-Ip"] 中取IP,其次从Headers["X-Forwarded-For"] ...
- C#.NET HTTPS 双向证书 请求被中止: 未能创建 SSL/TLS 安全通道。
请求被中止: 未能创建 SSL/TLS 安全通道. 用mmc 给私钥证书添加Everyone 的权限.
- java.util.Date和java.sql.Date有什么区别?
java.util.Date包含日期和时间,而java.sql.Date只包含日期信息,而没有具体的时间信息.如果你想把时间信息存储在数据库 里,可以考虑使用Timestamp或者Date ...
- IDEA环境编译Spring源码
一.下载源码 1.官网下载 官网地址 如下图 2.github git下载 github地址 如下图 3.gitee git下载(国内推荐使用) gitee地址 如图 查看对应的gradle版本 在下 ...
- JSONObject应用Json字符串和Object对象之间的转换,Map封装数据思路
JSONObject应用Json字符串和Object对象之间的转换,Map封装数据思路 package com.example.core.mydemo.json5; import com.alibab ...
- python 发起PUT请求,报"Method not Allowed" 和 取返回的报文的内容
发起请求的时候,默认使用的POST请求方式,导致发起请求,返回[405 Method not Allowed ],检查此更新接口的请求方式为PUT,更改请求方式为PUT PUT接口返回的内容,不能通过 ...
- Linux命令行配置RIAD5
环境准备: 系统: redhat6.9 硬盘:300G*3 SAS MegaCli是一款管理维护硬件RAID软件,可以用来查看raid信息等 1. 安装MegaCli rpm -ivh Lib_Uti ...
- java并发的发布和订阅测试
现在编码的时候,为了处理消息,大家动不动就上个重器,例如MQ之类的.但很多时候,并不是那么有必要,因为数据量和并发其实远远不够. 可以替代的方案非常多,其中一个是java.util.concurren ...
- Golang基于Mysql分布式锁实现集群主备
背景 集群中如果需要主备,可以基于Redis.zk的分布式锁等实现,本文将介绍如何利用Mysql分布式锁进行实现. 原理 数据库中包含数据字段(此处为Master的主机名).版本号和上一次更新时间. ...
- 实验8.Vlan Hybrid实验
# 实验8.Vlan Hybrid实验 本实验用于测试华为独有的混合式接口类型hybrid 实验组 配置交换机 对交换机sw1与sw2做具体配置 SW1 vlan ba 10 20 100 int g ...