ZJU-java进阶笔记 第七周(输入输出)
- 流是Java处理输入输出的方式
- 流的基础类——以字节(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
- 直接读写文件——文件流基本类
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文件
- 过滤器流
前面看到的流都只能处理单个字节
但当遇到一个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();}}
}
- 文本处理基本类
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();}}
}
- PrintWriter对输出做控制
format(“格式”,…);
printf(“格式”,…);//和C基本一致
print(各种基本类型);
println(各种基本类型);
在InputStream或Reader上建立一个Scanner对象
可以从流中的文本中解析出以文本表达的各种基本类型
next…()
如何选择类来读数据
ZJU-java进阶笔记 第七周(输入输出)相关推荐
- java学习笔记第七周(二)
目录 一.多线程 1.线程的基础知识 1.1 什么是进程?什么是线程? 1.2 进程和线程的关系 1.3 多线程并发的理解 2.实现多线程 2.1 第一种方式: 2.2 第二种方式 2.3 第三种方式 ...
- ZJU-java进阶笔记 第七周(异常处理)
异常的定义 捕捉异常范例 try{//可能产生异常的代码 }catch(Type1 id1){//处理Type1异常的代码 }catch(Type2 id2){//处理Type2异常的代码 }catc ...
- # 20155327 2016-2017-4 《Java程序设计》第七周学习总结
20155327 2016-2017-4 <Java程序设计>第七周学习总结 教材学习内容总结 了解Lambda语法 包含三个部分 一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法 ...
- 20155319 2016-2017-2 《Java程序设计》第七周学习总结
20155319 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 第十二章 Lambda 如果使用JDK8的话,可以使用Lambda特性去除重复的信息. 在只 ...
- 20155213 2016-2017-2 《Java程序设计》第七周学习总结
20155213 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 Lambda 如果使用JDK8的话,可以使用Lambda特性去除重复的信息. 在只有Lamb ...
- 20155227 2016-2017-2 《Java程序设计》第七周学习总结
20155227 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 认识时间与日期 时间的度量 世界时:在1972年引入UTC之前,GMT与UT是相同的. 国际 ...
- 20155333 2016-2017-2 《Java程序设计》第七周学习总结
20155333 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 Lambda 教材的引入循序渐近.深入浅出 Lambda去重复,回忆DRY原则 Lambda ...
- 20175305张天钰《java程序设计》第七周学习总结
<java程序设计>第七周学习总结 第八章 常用实用类 1.String类 1.String类不可以有子类.2.用户无法输出String对象的引用,输出的是字符序列 3.构造方法:Stri ...
- 201521123061 《Java程序设计》第七周学习总结
201521123061 <Java程序设计>第七周学习总结 1. 本周学习总结 2. 书面作业 ArrayList代码分析 1.1 解释ArrayList的contains源代码 贴上源 ...
最新文章
- 漂浮机器人新进展:Cimon的头部将为国际空间站带来人工智能
- android studio 使用CMAKE
- 设计模式学习--------3.简单工厂模式学习
- 创建二维数组(一维长度3,二维长度6),值为一维数组和二维数组索引值的积
- oracle where in优化,【求助】为什么在where过滤条件中使用in这样子查询后速度变的非常慢?!...
- Oracle存储过程 使用游标、数组的配合查询
- 二叉树遍历的非递归方法
- 链式向前星(一个优秀的存储图的数据结构)
- 和 8 个程序员聊了一下午,集齐了这些经验!
- WinRar DOS命令大全带详细参数rar/zip/7z压缩文件解密
- 解决ueditor上传图片报Nginx 502 bad gateway问题
- Resource exhausted: OOM when allocating tensor with shape[620,20000] and type float on /job:localhos
- SpringBoot 2-连接数据库、配置logback打印sql日志等
- These Days
- 用html代码制作一个表情图片,canvas绘制一个常用的emoji表情
- 半导体(Die及成品)产品标准大汇总包括可靠性等(IEC+JEDEC+EIAJ+AECQ+国标)
- 【北邮国院大三下】Cybersecurity Law 网络安全法 Week1【更新Topic4, 5】
- linux系统ISO下载网址大全
- goland dlv 进行remote debug实验
- 地主家也没有余粮了---走出软件作坊:三五个人十来条枪 如何成为开发正规军(三十六)