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 系统标准流 & 打印流的更多相关文章

  1. BIOS(Basic Input/Output System)是基本输入输出系统的简称

    BIOS(Basic Input/Output System)是基本输入输出系统的简称 介绍 操作系统老师说,平时面试学生或者毕业答辩的时候他都会问这个问题,可见这个问题对于计算机专业的学生来说是如此 ...

  2. Java自学第10期——File类与IO流(输入输出流、处理流、转换流、缓冲流、Properties集合、打印流)

    1.IO简介 IO(输入输出)通过java.io包下的类和接口来支持,包下包括输入.输出两种IO流,每种输入输出流又可分为字符流和字节流两大类. 2.File类 File类是io包下与平台无关的文件和 ...

  3. 标准输入输出() & 打印流 &配置文件

    public static void main(String[] args) { //System 类 的 public final static InputStream in = null; // ...

  4. JAVA input/output 流层次关系图

    在java中,input和output流种类繁多,那么它们之间是否有关系呢?答案是肯定的,其中使用到了设计模式,装饰模式 下图来自于HEAD FIRST 设计模式 装饰模式一章 下图来自网络博客:ht ...

  5. 14、Java文件操作stream、File、IO

    1.文件操作涉及到的基本概念 File File类 是文件操作的主要对象中文意义就是 文件 顾名思意 万物皆文件,在计算上看到的所有东西都是文件保存,不管是你的图片.视频.数据库数据等等都是按照基本的 ...

  6. Java - IO 内存流和打印流

    IO 内存流和打印流操作 字符编码 计算机中所有的信息组成都是二进制数据,所有能够描述的中文文字都是经过处理后的结果:所有的语言文字都会使用编码来进行描述,例如:ASCII码 常见编码 GBK/GB2 ...

  7. java 打印流(PrintStream)

    打印流(PrintStream):打印流可以打印任意类型的数据,而且打印流在打印数据之前会将数据转为字符串在进行打印 PrintStream可以接受文件和其他字节输出流,所以打印流是对普通字节输出流的 ...

  8. java 21 - 12 IO流的打印流

    打印流 字节流打印流 PrintStream 字符打印流 PrintWriter打印流的特点: A:只有写数据的,没有读取数据.只能操作目的地,不能操作数据源.(只能写入数据到文件中,而不能从文件中提 ...

  9. Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)

    1.操作基本数据类型的流     1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ...

  10. Java基础知识强化之IO流笔记59:打印流

    1. 打印流 (1)分类: • 字节打印流   PrintStream • 字符打印流   PrintWriter (2)打印流的特点: • 只能写数据,不能读数据 • 只能操作目的地,不能操作数据源 ...

随机推荐

  1. switch的穿透

      // switch 的 穿透         // 什么是switch的穿透         // 如果在 switch 中没有定义break , switch 会从定位的程序,一直执行到所有sw ...

  2. vue组件 定义全局组件

    组件 (Component) 是 Vue.js 最强大的功能之一,它是html.css.js等的一个聚合体. 组件化 将一个具备完整功能的项目的一部分分割多处使用 加快项目的进度 可以进行项目的复用 ...

  3. Python + redis操作Redis数据库

    Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorte ...

  4. 夜莺中心端管理categraf采集规则并下发

    痛点 市面上常见的采集器,比如 telegraf.grafana-agent.datadog-agent 等,通常内置了多种采集插件,比如可以采集操作系统的常规指标,也可以采集 mysql.redis ...

  5. MAPJOIN中无法使用UDF

    今天在写SQL时,遇到了一个异常,提示semantic exception generate map join error unable to find class,udf编写的没毛病,其他SQL也有 ...

  6. 从零开始写 Docker(十八)---容器网络实现(下):为容器插上”网线“

    本文为从零开始写 Docker 系列第十八篇,利用 linux 下的 Veth.Bridge.iptables 等等相关技术,构建容器网络模型,为容器插上"网线". 完整代码见:h ...

  7. 写的程序总是出 BUG,只好请佛祖前来镇楼啦

    前言 自己之前写着玩的,在这做个备份,感觉不错的取走即可. 南无阿弥陀佛 佛祖镇楼,BUG 消失,永不怠机. ///////////////////////////////////////////// ...

  8. CNN --入门MNIST识别

    Smiling & Weeping ---- 下次你撑伞低头看水洼, 就会想起我说雨是神的烟花. 简介:主要是看刘二大人的视频讲解:https://www.bilibili.com/video ...

  9. Web之http学习笔记

    目录 HTTP url http请求 请求行 请求方法 请求头 请求正文 http响应 响应行 状态码 响应头 响应正文 Cookie 定义: 内容: 用途: 生命周期: 隐私和安全性: Sessio ...

  10. ClickHouse特性及底层存储原理

    ClickHouse的特性 ClickHouse是一款MPP架构的列式存储数据库,但MPP和列式存储并不是什么"稀罕"的设计.拥有类似架构的其他数据库产品也有很多,但是为什么偏偏只 ...