Constructor
/*File(pathname)
*
* File(String parent,String child)
*
* File(File parent,String child)
* */
可以用一个斜杠/或者两个反斜杠\\
例如:
File f1 = new File("H:/IDM/DwnlData");
File f3 = new File("H:/IDM","DwnlData");
File parents = new File("H:/IDM");
File f4 = new File(parents,"DwnlData");
方法:
* creatNewFile() 指定的文件不存在,就创建文件返回true,否则就返回false
* mkdir() 创建单级文件夹,创建成功返回true,否则返回false
* mkdirs() 创建多级文件夹,创建成功返回true,否则返回false
* delete()删除单个文件或者文件夹
判断:
* exists() 判断文件或文件夹是否存在
* isDirectory() 判断文件对象是不是一个文件夹
* isFile() 判断文件对象是不是一个文件
* 前三个用的比较多,
* isAbsolute 判断当前路径是不是绝对路径
* isHidden() 判断文件是否隐藏
获取:
getAbsoluteFile();获取文件的绝对路径,返回file对象
getAbsolutePath();获取文件的绝对路径,返回路径字符串
f2.getParentFile();获取当前路径的父路径,以file对象的形式返回
getParent();获取当前路径的父路径,以字符串形式返回
getPath();获取当前路径
getName();获取当前文件或文件夹名称
lastModified();获取文件最后修改时间
length();获取文件长度
getTotalSpace()获取分区磁盘总大小
renameTo(File newFile())给文件改名字
* list() 以字符串形式返回当前路径下的所有文件和文件夹
* listFiles() 以file对象的形式返回当前路径下的所有文件和文件夹
递归:
方法内调用方法,调用自己,
实例:
列出一个文件夹下所有的子文件和子文件夹
private static void showList(File file) {
// TODO Auto-generated method stub
if(file.isDirectory()) {
File[] listFiles = file.listFiles();
for(File f : listFiles) {
//这里正在循环的f是文件夹对象
if(f.isFile()) {
System.out.println("文件"+f.getName());
}else if(f.isDirectory()) {
showList(f);//这里用的就是递归
}
}
}
System.out.println("文件夹:"+file.getName());
}
装饰者设计模式
对原有类进行了功能增强
与继承的不同
继承:被增强的对象固定
被增强的内容也是固定的
装饰者模式:被增强的对象是可以切换的
被增强的内容是固定的
动态代理(AOP):被增强的对象可以切换
被增强的内容也可以切换
class FileReader{
void read(){
开始读
}
}
继承
class MyFileReader extends FileReader{
void read(){
定义一个缓冲区
开始读
}
}
装饰者设计模式
class BufferReader extends Reader{
private Reader r;
BufferedReader(Reader r){
this.r = r;
}
void read(){
定义一个缓冲区
r.read();
}
}
转换流
第一个
FileReader fr = new FileReader("H:a.txt");
FileWriter fw = new FileWriter("H:Trans.txt");
BufferedReader br = new BufferedReader(fr);
BufferedWriter bw = new BufferedWriter(fw);
String line = null;
while((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
bw.flush();
}
fr.close();
fw.close();
br.close();
bw.close();
第二个
FileInputStream fis = new FileInputStream("H:a.txt");
FileOutputStream fos = new FileOutputStream("H:Trans2.txt");
InputStreamReader isr = new InputStreamReader(fis,"gbk");
OutputStreamWriter osw = new OutputStreamWriter(fos,"utf-8");
char [] c = new char[1024];
int li = 0;
while((li = isr.read(c)) != -1) {
osw.write(c,0,li);
osw.flush();
}
fis.close();
fos.close();
isr.close();
osw.close();
}
浙公网安备 33010602011771号