【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)打印流的特点: • 只能写数据,不能读数据 • 只能操作目的地,不能操作数据源 ...
随机推荐
- VmWare虚拟机和主机配置为同一网段IP
参考博客:将虚拟机IP与主机IP设置在同一网段的方法 - 天懿 - 博客园 (cnblogs.com) 主机地址 主机通过WiFi连接,地址信息为: 虚拟机配置 选择编辑-->虚拟网络编辑器-- ...
- 剑指Offer-67.剪绳子(C++/Java)
题目: 给你一根长度为n的绳子,请把绳子剪成整数长的m段(m.n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],...,k[m].请问k[0]xk[1]x...xk[m ...
- jsp表单提交中的逻辑判断
针对于表单 通常情况下 我们都是表单提交 提交的路径为以下: 提交的按钮的type="submit" 当我们想在表单提交前增加一个逻辑判断 我们就需要把button中的typ ...
- Vue2复习
Vue2 插值.指令.动态属性.表达式.v-html 插值:{{ data }} 指令 & 动态属性:例子(:id="xxx") 表达式:可以用于赋值,写在{{}}里面 v ...
- 初识 SpringMVC,运行配置第一个Spring MVC 程序
1. 初识 SpringMVC,运行配置第一个Spring MVC 程序 @ 目录 1. 初识 SpringMVC,运行配置第一个Spring MVC 程序 1.1 什么是 MVC 2. Spring ...
- EIGRP总结
EIGRP 思科私有,2013年公开,其他厂商不支持,所以用得不是很多 几秒钟就能完成收敛 触发更新,只要网络不发生变化就不会发生更新 按需更新,只更新变化的部分 ...
- QT学习:09 QByteArray
--- title: framework-cpp-qt-09-QByteArray EntryName: framework-cpp-qt-09-QByteArray date: 2020-04-16 ...
- Linux进程退出:SIGINT、SIGTERM 和 SIGKILL 有关信号 区别
背景 学习 海思SDK,查看例程的时候发现了类似下面的代码: int main(int argc, char *argv[]) { if(argc != 2) { printf("Usage ...
- 张高兴的 MicroPython 入门指南:(一)环境配置、Blink、部署
目录 什么是 MicroPython 环境配置 硬件部分 软件部分 Hello World! Blink Pico 的引脚 常见电子元件 面包板 跳线 开关 发光二极管 电阻 使你的 Pico 闪烁 ...
- 三层交换机vlan间路由
sw1: [Huawei]vlan batch 10 20 [Huawei]int e0/0/1 [Huawei-Ethernet0/0/1]port link-type access [Huawei ...