一、
Input 输入 Output 输出
数据从外界进入程序叫做输入 数据从程序流向外界叫做输出
二、文件的操作
文件的增删该查
1.文件创建
File file = newFile("c:\\io\\HelloIO.txt")
boolean flag = file.createNewFile();
创建成功返回true 创建失败返回false
2.创建目录
File fileDirection = newFile("c:\\io\\aaa");
boolean flagDirection =fileDirection.mkdir();//只能创建一级目录
File fileDirection = newFile("c:\\io\\aaa");
boolean flagDirection =fileDirection.mkdirs();//可以创建多级目录
3.删除
删除可以删文件也可以删文件夹,删文件可以直接删除,删文件夹的时候文件夹必须是空的才可以删除!
三、path分隔符和路径分隔符
1.path分隔符 、路径分隔符
2.可以通过File.pathSeparator判断操作系统的类型根据结果写不同的代码
public class TestSeparator {
public static void main(String[] args) {
//可以通过File.pathSeparator 判断操作系统的类型 根据结果 写不同的代码
// (Windows上为; Linux上为:)
System.out.println("path分隔符:(String类型)" + File.pathSeparator);
// (Windows上为;Linux上为:)
System.out.println("path分隔符:(char类型)" + File.pathSeparatorChar);
// (Windows上为\ Linux上为/)
System.out.println("路径层次分隔符:(String类型)" + File.separator);
// (Windows上为\ Linux上为/)
System.out.println("路径层次分隔符:(char类型)" +File.separatorChar);
}
}
3.文件常用方法
System.out.println("相对路径: " + f.getPath());//返回相对路径 IO\aaa\HelloIO.txt
System.out.println("绝对路径: " + f.getAbsolutePath());//返回绝对路径 C:\huanghuaiWorkSpace\HuangHuaiBk\IO\aaa\HelloIO.txt
System.out.println("文件是否存在: " + f.exists());//文件是否存在
System.out.println("是否可写: " + f.canWrite());//文件是否可写
System.out.println("文件是否可读: " + f.canRead());//文件是否可读
System.out.println("是否为文件: " + f.isFile());//是否为文件
System.out.println("是否是目录: " + f.isDirectory());//是否是目录
System.out.println("文件的最后修改日期: " + f.lastModified());// 文件的最后修改日期
四:读文件
IO流的分类
1.数据流向分:输入和输出
2.每次存取单位:字节流、字符流
3.按是否和数据源相连:节点流、包装流
4.read() 从此输入流中读取一个数据字节
read(byte[]b)从此输入流中将最多b.length个字节的数据读入一个byte数组中
read(byte[]b,int off,int len)从此输入流中将最多len个字节的数据读入一个byte数组中
5.字符读
6.查看平台的默认编码集
System.out.println(System.getProperty("file.encoding"));//打印平台的默认字符编码集
7.为什么字符读中会出现中文乱码?
因为中文占两个字节(gbk)、utf-8编码一个中文占三个字节,这样每次只读一个字节,只读了一个字的一部分,肯定乱码
五、写文件(修改)
void write(byte[]b)将b.length个字节从指定byte数组写入此文件输出流中
void write(byte[]b,intoff,int len)将指定byte数组中从偏移值off开始的len个字节写入此文件输出流
void write(int b)将指定文件写入此文件输出流