复习六(File文件流)

流是指一连串流动的字符以先进先出的原则传送信息的通道

IO流是指输入输出流

在文件流中信息会被转成 二进制(1字节8位)或 字符(unicode编码2字节)

流的分类:

  1.按照流向分:

        输出流:OutputStream 和 Writer

        输入流:InputStream 和 Reacer

  2.按照数据处理方式分:

        字节流:byte

        字符流:char

  InputStream/OutputStream 属于字节流不支持汉字

  Reacer/Writer 属于字符流支持汉字

File的方法:

  File file=new File("文件路径")

  file.exists() :判断文件是否存在

  file.createNewFile() :创建文件

  file.getName() :获得文件名称

  file.getPath() :获得文件相对路径

  file.parent() :获得文件上一层路径

  file.length() :获得文件长度

  file.getAbsoutePath() :获得文件完整路径

  file.isPirectory() :判断是否是文件夹

  file.delete() :删除文件(成功返回true)

使用流读取文件内容:

//1.创建流对象
FileInputStream ins=new FileInputStream(”文件地址“);

//2.将读到的内容放入byte数组中
byte[] bytes=ins.read();//读到的内容是ASII码 没有内容返回-1

//3.将byte数组转换为String
String s=new String(bytes);

//4.关闭流
ins.close()

字符流和字节流的使用方法相同只是将byte数组换成了char数组

使用流写入内容:

//1.创建流
FileOutputStream ops=new FileOutPutStream("文件路径")//如果没有这个文件会自动创建一个
//2.创建写入的内容
String s="内容"//3.将String的内容转换为Byte数组写入文件
ops.write(s.getBytes());
//4.关闭流
ops.close()

使用流复制文件:

//1.创建输入流和输出流
FileInputStream ins=new FileInputStream("原文件文件地址")

FileOutputStream ops=new FileOutputStream("新文件地址")

//2.定义一个存储信息的数组
 byte[]  bytes= new byte[文件长度];

//3.将读取到的内容放入数组
for(int i=0;i<butes.length;i++){
    bytes[i]=ins.read();
}

//4.写出
ops.write(bytes);
    
//5.关闭流
ops.close()
ins.close();

必须关闭流或加一个冲刷缓冲区outputStream.flush()不然内容会存放于缓冲区内写不出去报错

猜你喜欢

转载自www.cnblogs.com/HQ0422/p/12005381.html