File类
-------android培训、java培训、期待与您交流! ----------
File类的常见方法:
1,创建
boolean createNewFile();
boolean mkdir();创建文件夹
boolean mkdirs();创建多级目录
2,删除
boolean delete();
void deleteOnExit();//在程序退出时删除指定文件。
3,判断
boolean exists(); 文件是否存在。
isFile()
isDirectory()
isHidden()
isAbsolute()
4,获取信息
getName():
getPath():
getParent():
String getAbsolutePath():
File getAbsoluteFile():
long lastModified():
long length():
class FileDemo
{
public static void main(String[] args) throws IOException
{
method_5();
}
public static void method_5()
{
File f1 = new File( "c:\\test.java");
File f2 = new File( "c:\\hahaha.java");
sop( "rename:" +f1.renameTo(f2));
}
public static void method_4()
{
File f = new File( "abc\\a.txt");
sop( "path :" +f.getPath());
sop( "abspath :" +f.getAbsolutePath());
//该方法返回的是绝对路径中的父目录。如果获取的是相对路径,返回null
//如果相对路径中有上一层目录那么该目录就是返回结果。
sop( "parent :" +f.getParent());
}
public static void method_3() throws IOException
{
File f = new File( "file.txt");
// f.createNewFile();
f.mkdir();
//记住在判断文件对象是否是文件或者目录时,必须要先判断该文件对象封装的内容是否存在。
//通过exists()判断
sop( "dir:" +f.isDirectory());
sop( "file:" +f.isFile());
sop( "" +f.isAbsolute());
}
public static void method_2()
{
File f = new File( "FileDemo.java");
//sop("execute:"+f.canExecute());
sop( "exists:" +f.exists());
//创建文件夹,mkdir只能创建一级目录
File dir = new File( "abc");
sop( "mkdir:" +dir.mkdir());
File dir2 = new File( "abc\\a\\b\\c");
sop( "mkdirs:" +dir2.mkdirs());
}
public static void method_1() throws IOException
{
File f = new File( "file.txt");
//sop("create:"+f.createNewFile());
sop( "delete:" +f.delete());
}
//创建file对象
public static void consMethod()
{
//将a.txt封装成file对象。可以将已有的和未出现的文件或者文件夹封装成对象
File f1 = new File( "a.txt");
File f2 = new File( "c:\\abc", "b.txt");
File d = new File( "c:\\abc");
File f3 = new File(d, "c.txt");
File f4 = new File( "c" +File.separator + "abc" +File.separator + "d.txt");
sop( "f1:" +f1);
sop( "f2:" +f2);
sop( "f3:" +f3);
sop( "f4:" +f4);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
{
public static void main(String[] args) throws IOException
{
method_5();
}
public static void method_5()
{
File f1 = new File( "c:\\test.java");
File f2 = new File( "c:\\hahaha.java");
sop( "rename:" +f1.renameTo(f2));
}
public static void method_4()
{
File f = new File( "abc\\a.txt");
sop( "path :" +f.getPath());
sop( "abspath :" +f.getAbsolutePath());
//该方法返回的是绝对路径中的父目录。如果获取的是相对路径,返回null
//如果相对路径中有上一层目录那么该目录就是返回结果。
sop( "parent :" +f.getParent());
}
public static void method_3() throws IOException
{
File f = new File( "file.txt");
// f.createNewFile();
f.mkdir();
//记住在判断文件对象是否是文件或者目录时,必须要先判断该文件对象封装的内容是否存在。
//通过exists()判断
sop( "dir:" +f.isDirectory());
sop( "file:" +f.isFile());
sop( "" +f.isAbsolute());
}
public static void method_2()
{
File f = new File( "FileDemo.java");
//sop("execute:"+f.canExecute());
sop( "exists:" +f.exists());
//创建文件夹,mkdir只能创建一级目录
File dir = new File( "abc");
sop( "mkdir:" +dir.mkdir());
File dir2 = new File( "abc\\a\\b\\c");
sop( "mkdirs:" +dir2.mkdirs());
}
public static void method_1() throws IOException
{
File f = new File( "file.txt");
//sop("create:"+f.createNewFile());
sop( "delete:" +f.delete());
}
//创建file对象
public static void consMethod()
{
//将a.txt封装成file对象。可以将已有的和未出现的文件或者文件夹封装成对象
File f1 = new File( "a.txt");
File f2 = new File( "c:\\abc", "b.txt");
File d = new File( "c:\\abc");
File f3 = new File(d, "c.txt");
File f4 = new File( "c" +File.separator + "abc" +File.separator + "d.txt");
sop( "f1:" +f1);
sop( "f2:" +f2);
sop( "f3:" +f3);
sop( "f4:" +f4);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
文件夹操作
class FileDemo2
{
public static void main(String[] args)
{
listFiles();
}
public static void listFiles()
{
File dir = new File( "c:\\Javawork\\");
File[] files = dir.listFiles();
for (File f :files)
{
System.out.println(f.getName() + ":" +f.length());
}
}
{
public static void main(String[] args)
{
listFiles();
}
public static void listFiles()
{
File dir = new File( "c:\\Javawork\\");
File[] files = dir.listFiles();
for (File f :files)
{
System.out.println(f.getName() + ":" +f.length());
}
}
//带过滤条件 ,以".java"结尾
public static void listFilter()
{
File f = new File( "c:\\Javawork\\20");
String[] names = f.list( new FilenameFilter(){
public boolean accept(File f,String name){
return name.endsWith( ".java");
}
});
System.out.println( "len:" +names.length);
for (String name :names )
{
System.out.println(name);
}
}
public static void listDemo()
{
File f = new File( "c:\\");
//调用list方法的file对象必须是封装了一个目录
//而且该目录必须存在
String[] names = f.list();
for (String name :names )
{
System.out.println(name);
}
}
public static void listRootsDemo()
{
File[] files = File.listRoots();
for (File f :files)
{
System.out.println(f + ":" +f.length());
}
}
}
public static void listFilter()
{
File f = new File( "c:\\Javawork\\20");
String[] names = f.list( new FilenameFilter(){
public boolean accept(File f,String name){
return name.endsWith( ".java");
}
});
System.out.println( "len:" +names.length);
for (String name :names )
{
System.out.println(name);
}
}
public static void listDemo()
{
File f = new File( "c:\\");
//调用list方法的file对象必须是封装了一个目录
//而且该目录必须存在
String[] names = f.list();
for (String name :names )
{
System.out.println(name);
}
}
public static void listRootsDemo()
{
File[] files = File.listRoots();
for (File f :files)
{
System.out.println(f + ":" +f.length());
}
}
}
//递归显示文件夹下文件和文件夹
class FileDemo3
{
public static void main(String[] args)
{
showDir( new File( "C:\\Downloads"), 0);
}
public static String getLevel( int level)
{
StringBuilder sb = new StringBuilder();
sb.append( "|--");
for( int i = 0;i <level;i ++)
{
sb.insert( 0, " ");
}
return sb.toString();
}
//递归显示文件夹下文件和文件夹
public static void showDir(File dir, int level)
{
System.out.println(getLevel(level) +dir.getName());
level ++;
File[] files = dir.listFiles();
for( int i = 0;i <files.length;i ++)
{
//System.out.println(dir);
if(files[i].isDirectory())
showDir(files[i],level);
else
System.out.println(getLevel(level) +files[i]);
}
}
}
{
public static void main(String[] args)
{
showDir( new File( "C:\\Downloads"), 0);
}
public static String getLevel( int level)
{
StringBuilder sb = new StringBuilder();
sb.append( "|--");
for( int i = 0;i <level;i ++)
{
sb.insert( 0, " ");
}
return sb.toString();
}
//递归显示文件夹下文件和文件夹
public static void showDir(File dir, int level)
{
System.out.println(getLevel(level) +dir.getName());
level ++;
File[] files = dir.listFiles();
for( int i = 0;i <files.length;i ++)
{
//System.out.println(dir);
if(files[i].isDirectory())
showDir(files[i],level);
else
System.out.println(getLevel(level) +files[i]);
}
}
}
//递归删除带内容的目录
class RemoveDir
{
public static void main(String[] args)
{
removeDir( new File( "C:\\D"));
}
public static void removeDir(File dir)
{
File[] files = dir.listFiles();
for ( int i = 0;i <files.length ;i ++ )
{
if (files[i].isDirectory())
{
removeDir(files[i]);
}
else
System.out.println(files[i] + ":" +files[i].delete());
}
System.out.println( "dir:" +dir + ":" +dir.delete());
}
}
{
public static void main(String[] args)
{
removeDir( new File( "C:\\D"));
}
public static void removeDir(File dir)
{
File[] files = dir.listFiles();
for ( int i = 0;i <files.length ;i ++ )
{
if (files[i].isDirectory())
{
removeDir(files[i]);
}
else
System.out.println(files[i] + ":" +files[i].delete());
}
System.out.println( "dir:" +dir + ":" +dir.delete());
}
}
Properties 是hashtable的子类
也就是说它具备map集合的特点。而且它里面存储的键值对是字符串。
是集合中和IO技术相结合的集合容器
该对象的特点:可以用于键值对形式的配置文件
getProperty(String key) //用指定的键在此属性列表中搜索属性。
setProperty(String key, String value) // 调用 Hashtable 的方法 put。
list(PrintStream out) // 将属性列表输出到指定的输出流。
list(PrintWriter out) // 将属性列表输出到指定的输出流。
load(InputStream inStream) //从输入流中读取属性列表(键和元素对)。
load(Reader reader) //按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
store(OutputStream out, String comments)
//以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。
propertyNames() // 返回属性列表中所有键的枚举,如果在主属性列表中未找到同名的键,则包括默认属性列表中不同的键。
class PropertiesDemo
{
public static void main(String[] args) throws IOException
{
loadDemo();
}
public static void loadDemo() throws IOException
{
FileInputStream fis = new FileInputStream( "info.txt");
Properties prop = new Properties();
prop.load(fis);
prop.setProperty( "wangwu2", "18");
FileOutputStream fos = new FileOutputStream( "info.txt");
prop.store(fos, "haha");
prop.list(System.out);
}
//演示,如何将流中的数据存储到集合中
//想要将info.txt中键值数据存到集合中进行操作。
/*
1.用一个流和info.txt文件关联
2.读取一行数据,将该行数据用”=”进行切割。
3.等号左边作为键,右边作为值。存入到Properties集合中即可。
*/
public static void method_1() throws IOException
{
BufferedReader bufr = new BufferedReader( new FileReader( "info.txt"));
String line =null;
Properties prop = new Properties();
String[] arr =null;
while ((line =bufr.readLine()) !=null)
{
arr = line.split( "=");
prop.setProperty(arr[ 0],arr[ 1]);
}
bufr.close();
System.out.println(prop);
}
//设置和获取元素
public static void setAndGet()
{
Properties prop = new Properties();
prop.setProperty( "zhangsan", "30");
prop.setProperty( "lisi", "39");
//System.out.println(prop);
//String value = prop.getProperty("lisi");
//System.out.println(value);
prop.setProperty( "lisi", 89 + "");
Set <String > names = prop.stringPropertyNames();
for (String s :names )
{
System.out.println(s + ":" +prop.getProperty(s));
}
}
}
{
public static void main(String[] args) throws IOException
{
loadDemo();
}
public static void loadDemo() throws IOException
{
FileInputStream fis = new FileInputStream( "info.txt");
Properties prop = new Properties();
prop.load(fis);
prop.setProperty( "wangwu2", "18");
FileOutputStream fos = new FileOutputStream( "info.txt");
prop.store(fos, "haha");
prop.list(System.out);
}
//演示,如何将流中的数据存储到集合中
//想要将info.txt中键值数据存到集合中进行操作。
/*
1.用一个流和info.txt文件关联
2.读取一行数据,将该行数据用”=”进行切割。
3.等号左边作为键,右边作为值。存入到Properties集合中即可。
*/
public static void method_1() throws IOException
{
BufferedReader bufr = new BufferedReader( new FileReader( "info.txt"));
String line =null;
Properties prop = new Properties();
String[] arr =null;
while ((line =bufr.readLine()) !=null)
{
arr = line.split( "=");
prop.setProperty(arr[ 0],arr[ 1]);
}
bufr.close();
System.out.println(prop);
}
//设置和获取元素
public static void setAndGet()
{
Properties prop = new Properties();
prop.setProperty( "zhangsan", "30");
prop.setProperty( "lisi", "39");
//System.out.println(prop);
//String value = prop.getProperty("lisi");
//System.out.println(value);
prop.setProperty( "lisi", 89 + "");
Set <String > names = prop.stringPropertyNames();
for (String s :names )
{
System.out.println(s + ":" +prop.getProperty(s));
}
}
}