1

  1. package stream;
  2.  
  3. import static org.junit.Assert.assertNotNull;
  4.  
  5. import java.io.BufferedReader;
  6. import java.io.DataOutput;
  7. import java.io.DataOutputStream;
  8. import java.io.File;
  9. import java.io.FileNotFoundException;
  10. import java.io.FileOutputStream;
  11. import java.io.IOException;
  12. import java.io.InputStreamReader;
  13. import java.io.PrintStream;
  14.  
  15. import org.junit.jupiter.api.Test;
  16.  
  17. /*
  18. * 1.标准输入输出流
  19. * System.in :标准的输入流,默认从键盘输入
  20. * System.out 标准的输出流,默认从控制台输出
  21. * System类的setIn(InputStream is) / setOut(PrintStream ps)方式重新指定
  22. *
  23. * */
  24.  
  25. public class OtherStreamTest {
  26. /*
  27. * 方法一:使用Scanner实现,调用next()方法即可
  28. * 方法二:使用System.in实现读入,System.in -> 转换流 -> BufferedReader的readline()
  29. *
  30. * */
  31. @Test
  32. public void test1() {
  33. //得到标准输入流
  34. BufferedReader br = null;
  35. try {
  36. //System.in的流是字节流,所以要转换成字符流
  37. InputStreamReader isr = new InputStreamReader(System.in);
  38. br = new BufferedReader(isr);
  39.  
  40. while(true) {
  41. String data = br.readLine();
  42. if("e".equalsIgnoreCase(data) || "exit".equalsIgnoreCase(data)) {
  43. System.out.println("程序结束");
  44. break;
  45. }
  46. String upperString = data.toUpperCase();
  47. System.out.println(upperString);
  48. }
  49. } catch (Exception e) {
  50. e.printStackTrace();
  51. }
  52. finally {
  53. try {
  54. if(br!=null)
  55. br.close();
  56. } catch (Exception e) {
  57. e.printStackTrace();
  58. }
  59. }
  60. }
  61.  
  62. /*打印流
  63. * 字节输出流printStream
  64. * 字符输出流printWriter
  65. * 提供一系列重载的print()和println()
  66. * */
  67. @Test
  68. public void test2() throws FileNotFoundException {
  69. //文件hello.txt绑定输出流
  70. PrintStream ps = null;
  71. try {
  72. FileOutputStream fos = new FileOutputStream(new File("hello.txt"));
  73. //把标准输出流从 cmd 改为 文件流fos
  74. ps = new PrintStream(fos,true);
  75. if(ps!=null)
  76. System.setOut(ps);
  77.  
  78. for(int i=0;i<255;i++) {
  79. System.out.print((char)i);
  80. if(i%50==0)
  81. System.out.println();
  82. }
  83. } catch (Exception e) {
  84. e.printStackTrace();
  85. }
  86. finally {
  87. try {
  88. if(ps!=null)
  89. ps.close();
  90. } catch (Exception e) {
  91. e.printStackTrace();
  92. }
  93. }
  94. }
  95.  
  96. /*
  97. * 数据流:DataInputStream:套在InputStream和OutputStream上面
  98. * 作用:用于读取或写入基本数据类型的变量或字符串
  99. *
  100. * */
  101. @Test
  102. public void test3() {
  103. DataOutputStream dos = null;
  104. try {
  105. //将内存中的字符串,基本数据类型的变量写到文件中
  106. dos = new DataOutputStream(new FileOutputStream(new File("hello.txt")));
  107. dos.writeUTF("zsben");
  108. dos.flush();
  109. dos.writeInt(23);
  110. dos.writeBoolean(true);
  111. dos.flush();
  112. } catch (Exception e) {
  113. // TODO Auto-generated catch block
  114. e.printStackTrace();
  115. }
  116. finally {
  117. try {
  118. if(dos!=null)
  119. dos.close();
  120. } catch (Exception e) {
  121. e.printStackTrace();
  122. }
  123. }
  124. }
  125. }

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. postman测试wsdl类型接口

    1 IP地址来源搜索 WEB 服务 接口信息 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl 2  设置接口调用地址 ...

  2. C++ bitset的使用

    bitset 一般代替 bool 数组使用,常用于优化空间,因为 bitset 中一个元素只占 1 bit. bitset 的大小在定义使就需要确定.如果想要不定长的 bitset,就需要使用 vec ...

  3. Shell生成随机密码

    #tr参数 -c或——complerment:取代所有不属于第一字符集的字符: -d或——delete:删除所有属于第一字符集的字符: 1.生成10个小写字母 [root@kafka60 shell] ...

  4. python的tesseract库几个重要的命令

    在调用tesseract时,最重要的三个参数是 -l, -oem 和 -psm -l 参数控制识别文本的语言.可以通过命令 tesseract --list-langs  查看已经安装的字库. 支持中 ...

  5. 《JAVA设计模式》之原型模式(Prototype)

    在阎宏博士的<JAVA与模式>一书中开头是这样描述原型(Prototype)模式的: 原型模式属于对象的创建模式.通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办 ...

  6. eclipse新建maven项目出错 pom.xml报错

    问题: 1.新建项目后会提示一个这样的错 maven-compiler-plugin:3.1:compile(1 errors) maven-compiler-plugin:3.1:testCompi ...

  7. css画百分比圆环

    html: <div class="circle"> <div class="percent-circle percent-circle-left&qu ...

  8. 2019牛客暑期多校训练营(第一场) - H - XOR - 线性基

    https://ac.nowcoder.com/acm/contest/881/H 题意: 给定n个整数,求其中异或和为 \(0\) 的子集的大小的和. 题解思路: 首先转化为每个可以通过异或表示 \ ...

  9. c# UDP分包发送

    考虑到UDP的高速和其他协议的复杂性,做了一个依靠时间发送的分包组包重发的UDP库. https://github.com/jinyuttt/UDPTTL.git

  10. js本地时间格式化

    var myDate = new Date(); //获取当前时间及日期 var year=myDate.getYear(); // 获取当前年份(当前年份-1900) var fyear=myDat ...