java 标准输入输出流,打印流,数据流
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 标准输入输出流,打印流,数据流的更多相关文章
- java 转换流 打印流 数据流
转换流 InputStreamReader 和 OutputStreamWriter处理流用于将字节流转化成字符流,字符流与字节流之间的桥梁InputStreamReader 的作用是把 InputS ...
- Java标准输入输出流的重定向及恢复
在Java中输入输出数据一般(图形化界面例外)要用到标准输入输出流System.in和System.out,System.in,System.out默认指向控制台,但有时程序从文件中输入数据并将结果输 ...
- java 中的打印流
package cn.zhou; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.F ...
- 系统学习 Java IO (十一)----打印流 PrintStream
目录:系统学习 Java IO---- 目录,概览 PrintStream 类可以将格式化数据写入底层 OutputStream 或者直接写入 File 对象. PrintStream 类可以格式化基 ...
- IO流(三)__字节流 标准输入输出流 转换流
一.字节流:FileInputStream 和FileOutputStream 基本操作和字符流类相同,没有flush,但是close还是要的 复制一个字节流文件 private static voi ...
- Java基础教程——打印流
打印流 打印流可以把原本输出到控制台的信息输出到文件中.PrintStream是字节打印流(还有个对应的字符打印流是PrintWriter,这里不涉及) System类中有个变量: public fi ...
- Java标准输入/输出/错误流
只要使用OutputStream对象就可使用System.out和System.err对象引用.只要可以使用InputStream对象就可以使用System.in对象. System类提供了三个静态设 ...
- Java:IO流其他类(字节数组流、字符数组流、数据流、打印流、Properities、对象流、管道流、随机访问、序列流、字符串读写流)
一.字节数组流: 类 ByteArrayInputStream:在构造函数的时候,需要接受数据源,而且数据源是一个字节数组. 包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪 read ...
- Java IO(Properties/对象序列化/打印流/commons-io)
Java IO(Properties/对象序列化/打印流/commons-io) Properties Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载. ...
随机推荐
- python time 和日期相关模块
时间日期相关的模块 calendar 日历模块 time 时间模块 datetime 日期时间模块 timeit 时间检测模块 日历模块 calendar() 功能:获取指定年份的日历字符串 格式:c ...
- vsphere虚拟化之 NTP服务的创建(三)
1.先修改windows 2012的注册表. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\ 设置 Annou ...
- 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 ...
- POJ-1679.The Unique MST.(Prim求次小生成树)
The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 39561 Accepted: 14444 ...
- 巧用css内容生成
1. .box:before{content:"生成内容";}在.box内部的内容之前加上生成内容 2. .box:after{content:"生 ...
- 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 ...
- 数据仓库ETL案例学习(二)
来自案例学习 数据仓库经过ETL成功创建之后,就可以对数据仓库进行多维分析任务. 任务主要分为: 1.设置数据源,并添加分析时所需表到数据视图. 2.创建并设置维度. 3.设置时间维. 4.设置度量属 ...
- JS的video在手机上有些手机能播放,而有些不能原因
一,一开始我video是这样写的,直接给地址,然后有很多手机却不能播放,或者说卡在一开始的页面,是什么原因呢? <video id='video' > <source src='xx ...
- JVM(10)之 年老代收集器
开发十年,就只剩下这套架构体系了! >>> 在上一篇博文我们介绍了JAVA新生代收集器,本篇博文我们要讲的就是关于老年代的一些收集器.老年代存活的一般是大对象以及生命很顽强的对象 ...
- linux性能分析工具Top