1

package stream;

import static org.junit.Assert.assertNotNull;

import java.io.BufferedReader;
import java.io.DataOutput;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream; import org.junit.jupiter.api.Test; /*
* 1.标准输入输出流
* System.in :标准的输入流,默认从键盘输入
* System.out 标准的输出流,默认从控制台输出
* System类的setIn(InputStream is) / setOut(PrintStream ps)方式重新指定
*
* */ public class OtherStreamTest {
/*
* 方法一:使用Scanner实现,调用next()方法即可
* 方法二:使用System.in实现读入,System.in -> 转换流 -> BufferedReader的readline()
*
* */
@Test
public void test1() {
//得到标准输入流
BufferedReader br = null;
try {
//System.in的流是字节流,所以要转换成字符流
InputStreamReader isr = new InputStreamReader(System.in);
br = new BufferedReader(isr); while(true) {
String data = br.readLine();
if("e".equalsIgnoreCase(data) || "exit".equalsIgnoreCase(data)) {
System.out.println("程序结束");
break;
}
String upperString = data.toUpperCase();
System.out.println(upperString);
}
} catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if(br!=null)
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} /*打印流
* 字节输出流printStream
* 字符输出流printWriter
* 提供一系列重载的print()和println()
* */
@Test
public void test2() throws FileNotFoundException {
//文件hello.txt绑定输出流
PrintStream ps = null;
try {
FileOutputStream fos = new FileOutputStream(new File("hello.txt"));
//把标准输出流从 cmd 改为 文件流fos
ps = new PrintStream(fos,true);
if(ps!=null)
System.setOut(ps); for(int i=0;i<255;i++) {
System.out.print((char)i);
if(i%50==0)
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if(ps!=null)
ps.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} /*
* 数据流:DataInputStream:套在InputStream和OutputStream上面
* 作用:用于读取或写入基本数据类型的变量或字符串
*
* */
@Test
public void test3() {
DataOutputStream dos = null;
try {
//将内存中的字符串,基本数据类型的变量写到文件中
dos = new DataOutputStream(new FileOutputStream(new File("hello.txt")));
dos.writeUTF("zsben");
dos.flush();
dos.writeInt(23);
dos.writeBoolean(true);
dos.flush();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {
try {
if(dos!=null)
dos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}

java 标准输入输出流,打印流,数据流的更多相关文章

  1. java 转换流 打印流 数据流

    转换流 InputStreamReader 和 OutputStreamWriter处理流用于将字节流转化成字符流,字符流与字节流之间的桥梁InputStreamReader 的作用是把 InputS ...

  2. Java标准输入输出流的重定向及恢复

    在Java中输入输出数据一般(图形化界面例外)要用到标准输入输出流System.in和System.out,System.in,System.out默认指向控制台,但有时程序从文件中输入数据并将结果输 ...

  3. java 中的打印流

    package cn.zhou; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.F ...

  4. 系统学习 Java IO (十一)----打印流 PrintStream

    目录:系统学习 Java IO---- 目录,概览 PrintStream 类可以将格式化数据写入底层 OutputStream 或者直接写入 File 对象. PrintStream 类可以格式化基 ...

  5. IO流(三)__字节流 标准输入输出流 转换流

    一.字节流:FileInputStream 和FileOutputStream 基本操作和字符流类相同,没有flush,但是close还是要的 复制一个字节流文件 private static voi ...

  6. Java基础教程——打印流

    打印流 打印流可以把原本输出到控制台的信息输出到文件中.PrintStream是字节打印流(还有个对应的字符打印流是PrintWriter,这里不涉及) System类中有个变量: public fi ...

  7. Java标准输入/输出/错误流

    只要使用OutputStream对象就可使用System.out和System.err对象引用.只要可以使用InputStream对象就可以使用System.in对象. System类提供了三个静态设 ...

  8. Java:IO流其他类(字节数组流、字符数组流、数据流、打印流、Properities、对象流、管道流、随机访问、序列流、字符串读写流)

    一.字节数组流: 类 ByteArrayInputStream:在构造函数的时候,需要接受数据源,而且数据源是一个字节数组. 包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪 read ...

  9. Java IO(Properties/对象序列化/打印流/commons-io)

    Java IO(Properties/对象序列化/打印流/commons-io) Properties Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载. ...

随机推荐

  1. python time 和日期相关模块

    时间日期相关的模块 calendar 日历模块 time 时间模块 datetime 日期时间模块 timeit 时间检测模块 日历模块 calendar() 功能:获取指定年份的日历字符串 格式:c ...

  2. vsphere虚拟化之 NTP服务的创建(三)

    1.先修改windows 2012的注册表. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\ 设置 Annou ...

  3. mysql: "Warning: Using a password on the command line interface can be insecure." 解决方法

    错误重现: 命令行或者shell脚本中执行以下命令,如果您当前服务器mysql版本是大于5.6的,则会出现警告:Warning: Using a password on the command lin ...

  4. POJ-1679.The Unique MST.(Prim求次小生成树)

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 39561   Accepted: 14444 ...

  5. 巧用css内容生成

    1.      .box:before{content:"生成内容";}在.box内部的内容之前加上生成内容 2.       .box:after{content:"生 ...

  6. Codeforces Round #460 (Div. 2) B Perfect Number(二分+数位dp)

    题目传送门 B. Perfect Number time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  7. 数据仓库ETL案例学习(二)

    来自案例学习 数据仓库经过ETL成功创建之后,就可以对数据仓库进行多维分析任务. 任务主要分为: 1.设置数据源,并添加分析时所需表到数据视图. 2.创建并设置维度. 3.设置时间维. 4.设置度量属 ...

  8. JS的video在手机上有些手机能播放,而有些不能原因

    一,一开始我video是这样写的,直接给地址,然后有很多手机却不能播放,或者说卡在一开始的页面,是什么原因呢? <video id='video' > <source src='xx ...

  9. JVM(10)之 年老代收集器

    开发十年,就只剩下这套架构体系了! >>>   在上一篇博文我们介绍了JAVA新生代收集器,本篇博文我们要讲的就是关于老年代的一些收集器.老年代存活的一般是大对象以及生命很顽强的对象 ...

  10. linux性能分析工具Top