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 可保存在流中或从流中加载. ...
随机推荐
- postman测试wsdl类型接口
1 IP地址来源搜索 WEB 服务 接口信息 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl 2 设置接口调用地址 ...
- C++ bitset的使用
bitset 一般代替 bool 数组使用,常用于优化空间,因为 bitset 中一个元素只占 1 bit. bitset 的大小在定义使就需要确定.如果想要不定长的 bitset,就需要使用 vec ...
- Shell生成随机密码
#tr参数 -c或——complerment:取代所有不属于第一字符集的字符: -d或——delete:删除所有属于第一字符集的字符: 1.生成10个小写字母 [root@kafka60 shell] ...
- python的tesseract库几个重要的命令
在调用tesseract时,最重要的三个参数是 -l, -oem 和 -psm -l 参数控制识别文本的语言.可以通过命令 tesseract --list-langs 查看已经安装的字库. 支持中 ...
- 《JAVA设计模式》之原型模式(Prototype)
在阎宏博士的<JAVA与模式>一书中开头是这样描述原型(Prototype)模式的: 原型模式属于对象的创建模式.通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办 ...
- eclipse新建maven项目出错 pom.xml报错
问题: 1.新建项目后会提示一个这样的错 maven-compiler-plugin:3.1:compile(1 errors) maven-compiler-plugin:3.1:testCompi ...
- css画百分比圆环
html: <div class="circle"> <div class="percent-circle percent-circle-left&qu ...
- 2019牛客暑期多校训练营(第一场) - H - XOR - 线性基
https://ac.nowcoder.com/acm/contest/881/H 题意: 给定n个整数,求其中异或和为 \(0\) 的子集的大小的和. 题解思路: 首先转化为每个可以通过异或表示 \ ...
- c# UDP分包发送
考虑到UDP的高速和其他协议的复杂性,做了一个依靠时间发送的分包组包重发的UDP库. https://github.com/jinyuttt/UDPTTL.git
- js本地时间格式化
var myDate = new Date(); //获取当前时间及日期 var year=myDate.getYear(); // 获取当前年份(当前年份-1900) var fyear=myDat ...