package io;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
public class IoTest implements FilenameFilter {
public void create() {
// 创建文件夹
File file2 = new File("d:\\testIO");
if (file2.isDirectory()) {
System.out.println("文件夹已存在");
} else {
file2.mkdir();// mkdir()只会建立一级的文件夹,mkdirs()可以建立多级文件夹
}
// 新建文件
File file1 = new File("d:\\testIO\\iotest.txt");
if (!file1.exists()) {
try {
file1.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
System.out.println("文件已存在");
}
// 列出一个文件夹下的所有文件
File f = new File("d:\\testIO");
if (f.isDirectory()) {
File lists[] = f.listFiles();
for (int i = 0; i < lists.length; i++) {
// 得到文件名字
System.out.println(lists[i].getName());
// 得到文件路径
System.out.println(lists[i].getAbsolutePath());
// 得到文件大小
System.out.println("文件大小:" + lists[i].length());
}
}
}
// 读取数据
public void read() {
FileInputStream fis = null;
try {
fis = new FileInputStream("d:\\testIO\\iotest.txt");
byte bytes[] = new byte[1024];
int n = 0;
while ((n = fis.read(bytes)) != -1) {
String str = new String(bytes, 0, n);
System.out.print(str);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 写进数据
public void write() {
FileOutputStream fos = null;
try {
fos = new FileOutputStream("d:\\testIO\\iotest.txt");
String str = "2333";
byte bytes[] = str.getBytes();
fos.write(bytes);
// 接着往下写,io流注意一定要关闭
// fos = new FileOutputStream("d:\\testIO\\iotest.txt",true);
// String str = "\r\n这是第三行啊";
// byte bytes[] = str.getBytes();
// fos.write(bytes);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fos.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
// 删除文件及目录
public void deleteFolder(File folder) {
File[] files = folder.listFiles();
if (files != null) {
for (File f : files) {
if (f.isDirectory()) {
deleteFolder(f);
} else {
f.delete();
}
}
}
folder.delete();
}
// 字节流FileInputStream和FileOutputStream
// 字符流FileReader和FileWriter
public static void main(String[] args) {
IoTest test = new IoTest();
test.create();
// test.read();
// test.write();
// test.read();
// File file = new File("d:\\testIO\\iotest.txt");
// test.deleteFolder(file);
new FileIoUtil().f();
}
/**
* @param args
*/
public void f() {
File f = new File("d:\\testIO\\");
String[] filename = f.list();// 以字符串的形式,先列出当前目录下所有文件看一下(有什么类型的文件)
for (int i = 0; i < filename.length; i++) {
System.out.println(filename[i]);
}
System.out.println("********************************");
String[] fname = f.list(this);
// list()里accept
for (int i = 0; i < fname.length; i++) {
System.out.println(fname[i]);
}
}
@Override
public boolean accept(File f, String name) {// 重写接口方法
// TODO Auto-generated method stub
return name.endsWith(".java");// 返回当前目录下以.java结尾的文件
}
}