1. 流是Java处理输入输出的方式
  2. 流的基础类——以字节(byte)形式
    InputStream
    OutputStream
例
public class Main {public static void main(String[] args){System.out.println("请输入:");//定义一个字节数组byte[] buffer = new byte[1024];try {int len = System.in.read(buffer);String s = new String(buffer,0,len);System.out.println("读到了"+len+"字节");//回车也算一个,只不过看不见System.out.println(s);System.out.println("s的长度是"+s.length());} catch (IOException e) {e.printStackTrace();}}
}
输出
请输入:
画眉深浅入时无
读到了22字节
画眉深浅入时无s的长度是8
  1. 直接读写文件——文件流基本类
    FileInputStream
    FileOutputStream
例
public class Main {public static void main(String[] args){System.out.println("请输入:");//定义一个字节数组byte[] buffer = new byte[1024];try {System.in.read(buffer);FileOutputStream out = new FileOutputStream("a.dat");out.write(buffer);out.close();} catch (IOException e) {e.printStackTrace();}}
}
输出
控制台无输出,产生了一个a.dat文件
  1. 过滤器流
    前面看到的流都只能处理单个字节
    但当遇到一个int四个字节时?

过滤器流——在已经有的文件流的基础上增加一层层过滤器流

public class Main {public static void main(String[] args){//定义一个字节数组byte[] buffer = new byte[1024];try {//写文件DataOutputStream out = new DataOutputStream(//处理基本数据类型new BufferedOutputStream(//起缓冲作用new FileOutputStream("b.dat")));int i = 0xcafebabe;//十六进制(使用十进制也仍然会以十六进制存储)out.writeInt(i);out.close();//再读文件(以十进制输出,给人来看)DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream("b.dat")));int j = in.readInt();System.out.println(j);} catch (IOException e) {e.printStackTrace();}}
}
  1. 文本处理基本类
    InputStream/OutputStream 只能够处理字节
    DataInputStream/ DataOutputStream 只能处理基本数据类型

二进制数据采用DataInputStream/ DataOutputStream
文本数据采用Reader/Writer
(dat人不能直接读,需要工具软件,a.txt人可以直接读)

public class Main {public static void main(String[] args){try {//写文件PrintWriter out = new PrintWriter(new BufferedWriter(//起缓冲作用new OutputStreamWriter(//起桥梁作用new FileOutputStream("b.txt"))));int i = 123456;out.println(i);out.close();//读源代码文件BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("src/IOstream/Main.java")));String line;//当没有读到文件末尾while((line = in.readLine())!= null){System.out.println(line);}} catch (IOException e) {e.printStackTrace();}}
}
  1. PrintWriter对输出做控制
     format(“格式”,…);
     printf(“格式”,…);//和C基本一致
     print(各种基本类型);
     println(各种基本类型);

在InputStream或Reader上建立一个Scanner对象
可以从流中的文本中解析出以文本表达的各种基本类型
next…()

如何选择类来读数据

ZJU-java进阶笔记 第七周(输入输出)相关推荐

  1. java学习笔记第七周(二)

    目录 一.多线程 1.线程的基础知识 1.1 什么是进程?什么是线程? 1.2 进程和线程的关系 1.3 多线程并发的理解 2.实现多线程 2.1 第一种方式: 2.2 第二种方式 2.3 第三种方式 ...

  2. ZJU-java进阶笔记 第七周(异常处理)

    异常的定义 捕捉异常范例 try{//可能产生异常的代码 }catch(Type1 id1){//处理Type1异常的代码 }catch(Type2 id2){//处理Type2异常的代码 }catc ...

  3. # 20155327 2016-2017-4 《Java程序设计》第七周学习总结

    20155327 2016-2017-4 <Java程序设计>第七周学习总结 教材学习内容总结 了解Lambda语法 包含三个部分 一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法 ...

  4. 20155319 2016-2017-2 《Java程序设计》第七周学习总结

    20155319 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 第十二章 Lambda 如果使用JDK8的话,可以使用Lambda特性去除重复的信息. 在只 ...

  5. 20155213 2016-2017-2 《Java程序设计》第七周学习总结

    20155213 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 Lambda 如果使用JDK8的话,可以使用Lambda特性去除重复的信息. 在只有Lamb ...

  6. 20155227 2016-2017-2 《Java程序设计》第七周学习总结

    20155227 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 认识时间与日期 时间的度量 世界时:在1972年引入UTC之前,GMT与UT是相同的. 国际 ...

  7. 20155333 2016-2017-2 《Java程序设计》第七周学习总结

    20155333 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 Lambda 教材的引入循序渐近.深入浅出 Lambda去重复,回忆DRY原则 Lambda ...

  8. 20175305张天钰《java程序设计》第七周学习总结

    <java程序设计>第七周学习总结 第八章 常用实用类 1.String类 1.String类不可以有子类.2.用户无法输出String对象的引用,输出的是字符序列 3.构造方法:Stri ...

  9. 201521123061 《Java程序设计》第七周学习总结

    201521123061 <Java程序设计>第七周学习总结 1. 本周学习总结 2. 书面作业 ArrayList代码分析 1.1 解释ArrayList的contains源代码 贴上源 ...

最新文章

  1. 漂浮机器人新进展:Cimon的头部将为国际空间站带来人工智能
  2. android studio 使用CMAKE
  3. 设计模式学习--------3.简单工厂模式学习
  4. 创建二维数组(一维长度3,二维长度6),值为一维数组和二维数组索引值的积
  5. oracle where in优化,【求助】为什么在where过滤条件中使用in这样子查询后速度变的非常慢?!...
  6. Oracle存储过程 使用游标、数组的配合查询
  7. 二叉树遍历的非递归方法
  8. 链式向前星(一个优秀的存储图的数据结构)
  9. 和 8 个程序员聊了一下午,集齐了这些经验!
  10. WinRar DOS命令大全带详细参数rar/zip/7z压缩文件解密
  11. 解决ueditor上传图片报Nginx 502 bad gateway问题
  12. Resource exhausted: OOM when allocating tensor with shape[620,20000] and type float on /job:localhos
  13. SpringBoot 2-连接数据库、配置logback打印sql日志等
  14. These Days
  15. 用html代码制作一个表情图片,canvas绘制一个常用的emoji表情
  16. 半导体(Die及成品)产品标准大汇总包括可靠性等(IEC+JEDEC+EIAJ+AECQ+国标)
  17. 【北邮国院大三下】Cybersecurity Law 网络安全法 Week1【更新Topic4, 5】
  18. linux系统ISO下载网址大全
  19. goland dlv 进行remote debug实验
  20. 地主家也没有余粮了---走出软件作坊:三五个人十来条枪 如何成为开发正规军(三十六)

热门文章

  1. 日志服务Flink Connector《支持Exactly Once》
  2. linux 服务器FTP服务安装教程
  3. socket编程:多路复用I/O服务端客户端之poll
  4. 2015级C++第14周实践项目 模板
  5. linux中的for命令
  6. EBS-使用 fnd_user_pkg API 创建用户,添加职责,修改用户
  7. 华为AR28-11路由器配置
  8. C语言应用于LR中-如何得到数组长度
  9. Python之机器学习K-means算法实现
  10. MySQL基础之 恢复数据和数据库迁移