import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FileDemo1 {
public static void main(String[] args) throws IOException {
/*@blackrui
* @20/3/13-11:21
*/
System.out.println("Io的一些常用API:");
File file =new File("E:\\Xmind周笔记\\xishuashua.txt");
File file1 =new File("xishuashua.txt");
File file2 =new File(file,"game.exe");
System.out.println("文件名称为:"+file);
System.out.println("绝对路径1:"+file.getAbsolutePath());
System.out.println("绝对路径2:"+file1.getAbsolutePath());
System.out.println("绝对路径2:"+file2.getAbsolutePath());
System.out.println("判读是否是文件夹:"+file.isFile());
// System.out.println(f"文件夹/文件是否存在"+file.exists());
System.out.println("获取文件的长度:"+file.length());
System.out.println("文件最后修改的时间:"+file.setLastModified(0));
System.out.println("设置文件修改时间"+file.setLastModified(0));
File fileN =new File("E:\\Xmind周笔记\\xihaha.txt");
file.renameTo(fileN);
System.out.println("把文件名xishuashua.txt修改为xihaha.txt:"+file);//注意:这里修改后会文件名称会发生改变,前面一些就会出错,
File f =new File("E:\\办公三剑客");
System.out.println("以字符串数组的形式,返回当前文件夹下所有文件(不包括子文件和文件夹夹):");
File fs[] =f.listFiles();//多态
for(File a1: fs) {
System.out.println(a1);
}
System.out.println("以字符串形式返回所在的文件夹:"+f.getParent());
System.out.println("以文件形式返回所在的文件夹:"+f.getParentFile());
File f1 =new File("E:\\办公三剑客\\newFile");
File f2 =new File("E:\\办公三剑客\\newFile\\newFile.txt");
File f3 =new File("E:\\办公三剑客\\NewFile666777.txt");
System.out.println("创建文件夹1:"+f1.mkdir());//返回true表示创建成功,反之失败创建文件夹,如果父文件夹“办公三剑客”不存在,就会创建失败
System.out.println("创建文件夹2:"+f2.mkdirs());//如果父文件夹“办公三剑客”不存在,就会创建父文件夹,再新创建。
System.out.println("创建一个新的空的文件:"+f3.createNewFile());//如果父文件夹不存在,就会抛出异常
File f4 =new File("E:\\办公三剑客\\MyNewFile\\File.txt");
System.out.println("获取到文件的父目录"+f4.getParentFile().mkdirs());
System.out.println("列出盘符:"+f4.listRoots());
System.out.println("删除文件;"+f3.delete());//返回true表示成功了,反之失败,但是使用的时候千万要谨慎使用,
f3.deleteOnExit();//用于临时文件的删除
System.out.println("输出f3文件是否还存在:"+f3.getName());
System.out.println("获取文件最后修改时间:"+f.setLastModified(0));
// String ios1 =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date());
// System.out.println(ios1);
}
}
字节流
字符流
对象流
文件流
Zip流:
import java.io.*;
import java.util.zip.*;
public class MyZip { // 创建类
private void zip(String zipFileName, File inputFile) throws Exception {
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(
zipFileName)); // 创建ZipOutputStream类对象
zip(out, inputFile, ""); // 调用方法
System.out.println("压缩中…"); // 输出信息
out.close(); // 将流关闭
}
private void zip(ZipOutputStream out, File f, String base)
throws Exception { // 方法重载
if (f.isDirectory()) { // 测试此抽象路径名表示的文件是否是一个目录
File[] fl = f.listFiles(); // 获取路径数组
out.putNextEntry(new ZipEntry(base + "/")); // 写入此目录的entry
base = base.length() == 0 ? "" : base + "/"; // 判断参数是否为空
for (int i = 0; i < fl.length; i++) { // 循环遍历数组中文件
zip(out, fl[i], base + fl[i]);
}
} else {
out.putNextEntry(new ZipEntry(base)); // 创建新的进入点
// 创建FileInputStream对象
FileInputStream in = new FileInputStream(f);
int b; // 定义int型变量
System.out.println(base);
while ((b = in.read()) != -1) { // 如果没有到达流的尾部
out.write(b); // 将字节写入当前ZIP条目
}
in.close(); // 关闭流
}
}
public static void main(String[] temp) { // 主方法
MyZip book = new MyZip(); // 创建本例对象
try {
// 调用方法,参数为压缩后文件与要压缩文件
book.zip("hello.zip", new File("src"));
System.out.println("压缩完成"); // 输出信息
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
import java.io.*;
import java.util.zip.*;
public class Decompressing { // 创建文件
public static void main(String[] temp) {
ZipInputStream zin; // 创建ZipInputStream对象
try { // try语句捕获可能发生的异常
zin = new ZipInputStream(new FileInputStream("hello.zip"));
// 实例化对象,指明要进行解压的文件
ZipEntry entry = zin.getNextEntry(); // 获取下一个ZipEntry
while (((entry = zin.getNextEntry()) != null)
&& !entry.isDirectory()) {
// 如果entry不为空,并不在同一目录下
File file = new File("d:\\" + entry.getName()); // 获取文件目录
System.out.println(file);
if (!file.exists()) { // 如果该文件不存在
file.mkdirs();// 创建文件所在文件夹
file.createNewFile(); // 创建文件
}
zin.closeEntry(); // 关闭当前entry
System.out.println(entry.getName() + "解压成功");
}
zin.close(); // 关闭流
} catch (Exception e) {
e.printStackTrace();
}
}
}