黑马程序员技术交流社区
标题: 【石家庄校区】File类字符流和字节流 [打印本页]
作者: 奔跑的蜗牛006 时间: 2018-4-23 14:50
标题: 【石家庄校区】File类字符流和字节流
本帖最后由 小石姐姐 于 2018-4-26 14:28 编辑
File类字符流和字节流
路径字符串写法: 1.Windows: D:\\a\\b\\c \ 需要转义\ \ 2.Linux: D:/a/b/c
File: 既能表示文件,特能表示目录.
构造方法: File f=new File("D: \develop\a.txt"); 只创建File对象,不会创建文件.
File f=new File("D:\develop", "a.txt"); 子父路径拼接,指向a.txt文件.
File(File parent, String child): 根据指定的父路径File对象和文件路径创建File对象
成员方法: 创建 boolean createNewFile; 文件
boolean mkdir(); 目录
boolean mkdirs(); 多层目录
删除
boolean delete(); 删除文件或目录,回收站没有
删除文件夹,这个文件夹必须为空;
获取
File getAbsoluteFile();
String getParent();
File getParentFile();
String getName(); 获取File对象代表的文件名或目录名(不含上层目录)
String getPath(); 创建File对象时是相对路径则返回相对路径, 是绝对路径则返回绝对路径
long lastModified(); 以毫秒值返回最后修改时间;
long length(); 返回文件字节数,不可以返回目录字节数;
修改
boolean renameTo(File dest); 修改文件名
判断
boolean exists(); 是否存在
boolean isAbsolute();
boolean isDirectory();
boolean isFile();
boolean isHidden(); 是否隐藏
▲重要的获取功能:
▲String[ ] list() 获取当前路径下所有文件和目录名称(不包括父路径). File对象必须是目录, 否则会报错
▲File[ ] listFiles() 获取当前路径下的所有文件和目录的File对象. File对象必须是目录
▲sttatic File[ ] listRoots() 返回系统的所有根路径. windows系统就是各种盘符 c:
绝对路径: 固定不可改变的路径,以盘符开头;
相对路径: 相对某个参照物,不能以盘符开头
IO流的分类:外部文件--->内存中--->到文件
按流向分:(相当于java文件)
输入流: 读取数据 FileReader Reader
输出流: 写出数据 FilderWriter Writer
按处理数据分(数据类型):
字节流:(处理任何类型文件)
字节输入流:InputStream类
字节输入流:OutputStream类
字符流:(处理文本文件)
字符输入流:Reader类
字符输出流:Writer类
字符流复制图片:中间有个GBK编码表,有些数字没有相对应的字符,所以会出现偏差.而字节流并没有查询编码表这一中间环节.
字符流复制文本文件的5种方式
基本流, 一次读写一个字符
基本流, 一次读写一个字符数组
缓冲流, 一次读写一个字符
缓冲流, 一次读写一个字符数组
缓冲流, 一次读写一行字符串
字节流: InputStream 字节输入流的顶层
FileInputStream 从文件获取的字节输入流
BufferedInputStream 带有缓冲区的高效字节输入
字符流: Reader 字节输入流的顶层
FileReader 文件字符输入流
BufferedReader 缓冲文件字符输入流
一次一个byte
int by; while ((by = fis.read()) != -1) { fos.write(by); }
一次一个byte数组 int len; byte[] bys = new byte[1024]; while ((len = fis.read(bys)) != -1) { fos.write(bys, 0, len); }
一次读写一行 String line; while ((line = br.readline()) != null) { bw.write(line); bw.newLine(); }
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |