T6 s1 day19

**********************************************************************
IO流
**********************************************************************
回顾:
1、Java异常处理机制
try-cach-finally throw -throws
执行过程
两种异常
运行时异常
checked异常
常见的异常类型都有哪些:
自定义异常 继承Exception
2、工具类
String:charAt() split(",") length() subString() replace indexOf
String str="abc"; 不可变字符串
str=str+"def";
System.out.println(str); //String 重写了Object中toString()方法
StringBuffer append追加
StringBuilder 非线程安全,效率更高

Math类 数学方法
Date SimpleDateFormat yyyy MM dd hh mm ss SSS
Calendar 日历
Arrays sort() binarySearch() toString

调试debug
【注意】方法的参数是基本类型和引用类型的区别

Java集合框架:
1、图谱 接口 实现类
2、每种集合存放数据的特点
ArrayList 非线程安全 效率高
Vector 线程安全

ArrayList LinkedList区别

Set:无序 唯一 add()方法时

key-value Map HashMap LinkedHashMap

遍历集合:
1、Set keys=集合.keySet();

2、Set entry=集合.entrySet(); 迭代器

3、foreach
4、for

今日内容:
1、文件内容的读写
字节流
字符流完成

流:程序和文件之间的通道
字节流:通道里流动的是字节 byte
InputStream 接口 FileInputStream 实现类 输入字节流
OutputStream 接口 FileOutputStream 实现类 输出字节流

字符流: 字符 char
如何通过字节流的方式进行文件的读写:
文件读取操作方式:
1、逐个字节读取 一次读取一个
2、读入一个字节数组 批量读,每次读取数组长度个

原理:FileInputStream 有个position指针,记录当前读取的位置
默认在文件开始,读取一个字节后,postition向后移动一字节,最后读取到的是-1

字符流
以字符为单位在流通道中传输
FileReader类 字符输入流

提升读取效率:缓冲的读写
BufferedWriter 是 FileWriter 子类 提供了逐行写入功能
BufferedReader 是 FileReader 子类 提供了逐行读取功能
BufferedDemo

作业1:
DBConfig.conf
db:{ip}
dbname:{dname}
username:{uname}
pwd:{pwd}

让用户输入对应的信息,接收后
写入到对应的位置

扩展:
1、读取二进制文件
2、阻塞IO 效率低
NIO 非阻塞IO

1、读取二进制文件

IO流操作 是阻塞的,当一个流没有完成操作后,另一个流操作无法进行。
阻塞的IO:效率低
NIO:非阻塞的IO流
缓冲区

总结:
File类
流:通道
FileInputStream
FileOutputStream

FileReader
FileWriter

BufferedReader
BufferedWriter

二进制

上一篇:NHOI2019小结


下一篇:NHOI2019竞赛游记