IO和网络编程和File
字节流
字符流:gbk,utf-8 对应了不同的字节:1-2-3
任何情况下-都要经过内存
File 测试案例FIle
磁盘文件抽象和操作
file对象查找-磁盘文件
isDirectory() 测试此抽象路径名表示的File是否为文件夹
isFile() 测试此抽象路径名表示的File是否为文件
exists() 测试此抽象路径名表示的File是否存在
getAbsolutePath() 返回此抽象路径名的绝对路径名字符串
getPath() 将此抽象路径名转换为路径名字符串
getName() 返回由此抽象路径名表示的文件或文件夹的名称
long lastModified() 返回文件最后修改的时间毫秒值
在磁盘上创建
//返回值:Boolean,true=创建成功,false=创建失败
createNewFile() 创建一个新的空的文件
mkdir() 只能创建一级文件夹
mkdirs() 可以创建多级文件夹
删除磁盘上的文件
//delete方法默认只能删除文件和空文件夹。
//delete方法直接删除不走回收站
delete() 删除由此抽象路径名表示的文件或空文件夹
文件树操作
public String[] list() 获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。
//递归查询所有的文件
public File[] listFiles()(常用) 获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回
递归删除文件和目录
@Test
public void test02() {
File file = new File("C:\\Users\\xulin\\Desktop\\shanchu");
getFileName(file);
}
//删除文件和文件夹
public void getFileName(File file) {
if (file == null) {
return;
}
if (file.isDirectory()) {
File[] files = file.listFiles();
for (File item : files) {
getFileName(item);
}
} else {
boolean delete = file.delete();
System.out.println(delete + "删除文件" + file.getAbsolutePath() + "---->:" + file.getName());
}
boolean delete = file.delete();
System.out.println(delete + "删除文件夹" + file.getAbsolutePath() + "---->:" + file.getName());
}
流
//字节-流的始祖
InputStream;
OutputStream;
//节点流
FileOutputStream;
FileInputStream;
//包装流-read返回读取的个数,末尾返回-1
BufferedInputStream;
BufferedOutputStream;
//字符-流的始祖
Reader;
Writer;
//节点流-read返回读取的个数,末尾返回-1
FileReader;
FileWriter;
//包装流-read返回读取的个数,末尾返回-null
BufferedReader;
BufferedWriter;
System.out;
System.in;
// br.readLine()方法读取一个文本行,但不带换行符。
//循环读取,每次判断读取是否为null
String s = null;
while((s = br.readLine()) != null){
System.out.print(s);
}
//节点流
//循环读取,每次判断读取的个数是否为-1
char[] chars = new char[4]; // 一次读取4个字符
int readCount = 0;
while((readCount = reader.read(chars)) != -1) {
System.out.print(new String(chars,0,readCount));
}
}