IO流
I :input,输入
O:outPut,输出、
分类
○ 操作的数据类型
字节流:压缩包,视频,图片等
字符流:主要用来操作纯文本
○ 数据流向
输入流
输出流
○ 功能不同
节点流
处理流
字节输入流
//绝对路径:D:\a.txt
//FileInputStream fileInputStream=new FileInputStream("D:/a.txt");
//相对路径:./ 定位到当前项目
//./src\com\tledu\process\day_21
//read()方法:返回的是字符的ASCII码,返回-1代表读到了末尾
FileInputStream fileInputStream=new FileInputStream("./src/com/tledu/process/day_20/Room.java");
int read=0;
while ((read=fileInputStream.read())!=-1){
System.out.print((char) read);
}
fileInputStream.close();
字符输入流
// 处理纯文本
try ( FileReader fileReader=new FileReader("./src/com/tledu/process/day_20/Room.java")){
int read=0;
while ((read=fileReader.read())!=-1){
System.out.print((char) read);
}
} catch (IOException e) {
e.printStackTrace();
}
字节输出流
// 输出流可以自动创建文件,但是不能帮你创建文件夹
// 默认是覆盖,如果想追加,在构造方法第二个参数传true,默认是false就是覆盖
try( FileOutputStream fileOutputStream=new FileOutputStream("D:/b.txt",false)) {
// fileOutputStream.write(97);
// fileOutputStream.write(98);
// fileOutputStream.write(99);
String a="你好啊";
byte[] bytes = a.getBytes();
fileOutputStream.write(bytes);
} catch (IOException e) {
e.printStackTrace();
}
字符输出流
try (FileWriter fileWriter=new FileWriter("./src/com/tledu/process/day_21/b.txt");){
fileWriter.write(97);
fileWriter.write("我很好");
String a="十分感谢";
fileWriter.write(a.toCharArray());
} catch (IOException e) {
e.printStackTrace();
}
缓冲流
文件复制
//
public static ArrayList<Integer> readFile(){
try (FileInputStream fileInputStream = new FileInputStream("src/practice_month_10/day1006/a.zip");
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream)
) {
int read;
ArrayList<Integer> arrayList = new ArrayList<>();
while ((read=bufferedInputStream.read())!=-1) {
arrayList.add(read);
}
return arrayList;
}catch (IOException e){
e.printStackTrace();
}
return null;
}
//
public static void writeFile(ArrayList<Integer> arrayList){
try (FileOutputStream fileOutputStream = new FileOutputStream("src/practice_month_10/day1006/aCopy.zip");
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream)
) {
for (Integer integer : arrayList) {
bufferedOutputStream.write(integer);
}
}catch (IOException e){
e.printStackTrace();
}
}
一行一行的读取
public static void input0(){
TreeSet<Integer> treeSet = new TreeSet<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
try (FileReader fileReader = new FileReader("src/practice_month_10/day1006/input");
BufferedReader bufferedReader = new BufferedReader(fileReader);
) {
String read;
while ((read = bufferedReader.readLine()) != null) {
treeSet.add(Integer.parseInt(read));
}
}catch (IOException e){
e.printStackTrace();
}
System.out.println(treeSet);
System.currentTimeMillis();//当前毫秒数
}