File类
#File 并不是指文件本身
两个常量:
路径分隔符File.pathSeparator
名称分隔符File.separator
//路径表示的几种形式
//1、windows下
String path = "C:\\Users\\dell\\Desktop";
//2、
path = "C:"+File.separator+"Users"+File.separator+"dell"+File.separator+"Desktop";
//3、推荐方式
path = "C:/Users/dell/Desktop";
- IO流基础
一、概念
流动、流向
以程序为中心二、IO流分类
1、流向:
输入流与输出流输入流 进内存
输出流 出内存
2、数据
字节流:二进制 可以一切文件 包括纯文本 、doc 、音频 、视频等等
字符流:文本文件 只能处理纯文本
3、功能
节点:包裹源头
处理:增强功能,提供性能(提高效率)三、字符流与字节流(重点)
1、字节流
输入流:InputStream
输出流:OutputStream
2、字符流
(读入 写出)
输入流:Reader
输出流:Writer四、操作
1、与文件建立联系
2、选择流
3、操作
4、释放资源
###FileWriter写数据###
输出流写数据的步骤:
A、创建输出流对象
B、调用输出流对象的写数据方法 并刷新缓冲区 (硬盘存储数据的基本单位是字节)
C、释放资源 (close()方法先刷新 再通知系统释放资源)
换行:\n \r \r\n
* windows识别的换行为 \r\n
* Linux识别的换行为 \n
* mac识别的换行为 \r
###FileReader读数据###
同 FileWriter写数据
代码实例:
* int len;
* char[] chs = new char[1024];
* while ((len=fr.read(chs))!=-1) {
* System.out.print((new String(chs,0,len)));
* }
* fr.close();
*注意 char[] chs = new char[1024]; //写1024及其整数倍
*往控制台输出时,不要ln
System.out.print();
###文件复制###
数据源:
目的地:
*判断读 //先读
然后写进去 //后写
###字符缓冲流### (高效地读入和写出)
BufferedWriter bf = new BufferedWriter(new FileWriter("bf.txt"));
BufferedReader br = new BufferedReader(new FileReader("bf.txt"));
//注意构造方法里面
System.out.print(new String(csh,0,len));
//
缓冲流的特殊功能:
newLine() //写一个换行符 这个换行符由系统决定
readLine() //读一行 【不包括换行符】 五、IO 常用API 的测试
文件操作
File:文件和目录路径名的抽象表示形式,File类的实例是不可变的(即File可以创建实例)
##创建功能
createNewFile()
mkdir()
mkdirs()
##删除功能
##判断功能字节流
字节缓冲流
对象流
转换流 (OutputStreamWriter 、 InputStreamReader)
可以指定字符集
*实例化转化流,必须先实例化一个字节流*测试转换流
1 | @Test |
缓冲字符流
BufferedWriter
BufferedReader
1 | @Test |
打印流 PrintWriter字符打印流
1 | /** |
六、注意
1、字符流的底层,依然是字节流
2、File 类只是用来表示目录和文件的相关信息,不对文件内容进行访问
new File(“”); //仅仅是创建一个内存对象
3、int read() ; 读取一个字节/(字符)内容,返回将该字节内容存到int类型的低8/(16)位
4、操作文件即为节点流
5、包装流

