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
二进制