章节笔记——IO流

流是连接程序和设备的管道,主要用于数据传输。
四大基本抽象流:

  • 输入流:read input
  • 输出流:write output
  • 字符流:read write
  • 字节流:input output

对象.read()返回值为int型
//ASCII从0开始的数字,只有为什么都没有才返回-1

对象.flush();//将缓存输出 写在文件关闭之前

文件关闭
对象.close();

文件流:

字符 :FileReader输入FileWriter输出(写到硬盘)
字节 :FileInputStream输入FileoutputStream输出
文本文件用字符流 其他文件用字节流
1字符=2字节
原因:字母和数字一个字节 一个汉字两个字节
字符流:文本文件
字节流:音频 视频 图片

缓冲流

输入:
BuffereInputStream hcfz= new BuffereInputStream( new FileInputStream("地址"));

byte [] hc =new byte[2048]; //缓冲区大小
int ff;
ff = hcfz.write(hc);
while(hc!=(-1)){
hczt.write(hc,0,ff);//为了防止最后一次书库长度与缓冲区不同
ff = hcfz.read(hc);
}

转换流

键盘键入是字节流System.in 转换成字符流输出
new InputsTReader(System.in)

数据流

DataOutputStream 数据字节输出流
writeXXX(data)方法的结果是计算机识别的二进制形式

Print流

PrintStream 打印输出流
printStream中的println(data)方法结果是是字符串形式
将字符写进文件

import java.io.*;


public class Main {

    public static void main(String[] args) throws Exception {
        PrintStream shuchu = new PrintStream("D:/缓存/myjava/shucu.txt");
        System.setOut(shuchu); //(输出对象)可以是打印机等等//输出到什么位置
        System.out.println("文件里的内容");
    }
}

System.set.Err(对象);//专门输出错误

Object流

将数据存入到文件中 文件是乱码 但是不是加密
readObjec()方法是用于读取数据,并且进行类型转换
transient 的作用是忽略 外界传不进来值

finally 的作用是善后 要起到退出作用

如果写finally 则前面不要写退出代码
finally {
try{
对象.close();
System.exit(-1);

catch(Exception e){
System.exit(-1);

空接口Serializable

Serializable接口,它只是一个标志,没有任何方法,只有实现这个接口才具有序列化功能。

文件的属性读取

  • 读取路径
    对象. getAbsolutePath()

  • 文件大小 单位是字节
    对象.length()

  • 文件是否可读
    对象.canRead()

  • 文件是否可写
    对象.canWrite()

  • 文件是否存在
    对象.exists()文件是否存在 返回布尔值

  • 创建文件
    对象.createNewFile()

  • 创建文件夹
    正常和创建文件方法一样
    对象.mkdir();

  • 文件夹是否存在
    对象.isDirectory()

  • 文件夹下创建文件

你可能感兴趣的:(章节笔记——IO流)