复习(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()不然内容会存放于缓冲区内写不出去报错