day20File类,文件列表文件,properties

翻译 2016年08月30日 19:30:43
import java.io.*;
/*
file类常见方法
1.创建
boolean createNewFile();
在指定位置创建文件,如果该文件已经存在,则不创建,返回false
和输出流不一样,输出流对象一创建文件,而且文件已经存在,会覆盖

boolean mkdir():创建目录
boolean mkdirs():创建多级目录
2.删除
boolean delete();删除失败,返回false
void deleteOnExit();在程序退出时,删除指定文件
3.判断
canExecute();可执行
canRead()
canWrite()
compareTo()

boolean exists():文件是否存在
isFile()是否是文件
isDirectory()是否是目录
isHidden()是否是隐藏
isAbsolute()是否是绝对
4.获取信息
getName() 
getPath()
getParent()

getAbsolutePath()绝对路径
long lastModified()最后一次修改时间
long length()文件长度
*/
class FileDemo 
{
public static void main(String[] args) throws IOException
{
method_5();
}
public static void method_5()throws IOException
{
File f1=new File("c:\\file.txt");
File f2=new File("d:\\haha.txt");
sop("rename:"+f1.renameTo(f2));
}

public static void method_4()throws IOException
{
File f=new File("file.txt");//c:\\abd\\file.txt
sop("path:"+f.getPath());
sop("getAbsolutePath:"+f.getAbsolutePath());
sop("getParent:"+f.getParent());
//该方法返回的是绝对路径的父目录,如果获取的是相对路径,返回null
//如果相对路径有上层目录,返回上层
}
public static void method_3()throws IOException
{
File f=new File("file.txt");
//f.createNewFile();
f.mkdir();
//记住在判断文件对象是否是文件和目录,必须先判定该文件对象封装的内容是否存在
//通过exists判断
sop("dir:"+dir.isDirectory());
sop("file:"+dir.idFile());
}
public static void method_2()throws IOException
{
File f=new File("file.txt");
//sop("execute:"+f.canExecute());
sop("exists:"+f.exists());

//创建文件夹
File dir=new File("abc");
sop("mkdir:"+dir.mkdir());
}
public static void method_1()throws IOException
{
File f=new File("file.txt");
f.deleteOnExit();
code();
//sop("create:"+f.createNewFile());
Sop("delete:"+f.delete());
}

//创建File对象
public static void consMethod()
{
//将a.txt封装成file对象,可以将已有的和未出现的文件或者文件夹封装成对象
File f1=new File("c:\\abc\\a.txt");
//
File f2=new File("c:\\abc","b.txt");
File d=new File("c:\\abc");
File f3=new File(d,"c.txt");

sop("f1:"+f1);
sop("f1:"+f1);
sop("f1:"+f1);

File f4=new File("c:"+File.separator+"abc"+File.separator+"zzz"+File.separator+"a.txt");
}
public static void sop(Object obj)
{
System.out.println(obj);
}

}

----------------------------------------

class  FileDemo2
{
public static void main(String[] args) 
{
File dir=new File("c:\\");
File[] files=dir.listFiles();

for (File f:files)
{
sop(f.getName()+"::"+f.length());
}
}
public static void listDemo_2()
{
File dir=new File("d:\\Java0217\\day18");

String[] arr=dir.list(new FilenameFilter()
{
public boolean accept(File dir,String name)
{
return name.endsWith(".bmp");
}
});
for(String name:arr)
{
sop(name);
}
}
public static void listDemo()
{
File f=new File("c:\\");

String[] names=f.list();//调用lise方法的file对象必须是封装一个目录,该目录还必须存在
for(String name:names)
{
sop(name);
}
}
public static void listRootsDemo()
{
File[] files=File.listRoots();
for(File f:files)
{
sop(f);
}
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}

---------------------------------------------------------

/*
列出指定目录下的文件或者文件夹,包含子目录
就是列车指定目录下所有的内容。

因为目录中还有目录,只要使用同一个列出目录的函数完成即可
在列出过程中出现的还是目录的话,还可以再次调用本功能
函数自身调用自身
这种表现形式,或者编程手法,称为递归

递归注意
1.限定条件

2.要注意递归的次数,尽量避免内存溢出
*/
import java.io.*;
class FileDemo3 
{
public static void main(String[] args) 
{
File dir=new File("d:\\java0217");
showDir(dir);

int n=getSum(10);
System.out.println("n="+n);
}
public static void getSum(int n)
{
if(n==1)
return 1;
return n+getSum(n-1);
}
public static void toBin(int num)
{
if (num>0)
{
toBin(num/2);
System.out.println(num%2);
}
}

public static void showDir(File dir)
{
System.out.println(dir);
File[] files=dir.listFiles();
for (int x=0;x<files.length ;x++ )
{
if (files[x].isDirectory())
showDir(files[x]);
else
System.out.println(files[x]);
}
}
}

------------------------------------------

/*
练习
将一个指定目录的java文件的绝对路径,存储到一个文本文件中
建立一个java文件列表文件

思路
1.对指定目录进行递归。
2.获取递归过程绝对路径
3.将这些路径存储到集合中
4.将集合数据写入到一个文件

*/
import java.util.*;
import java.io.*;
class JavaFileList 
{
public static void main(String[] args) throws IOException
{
File dir=new File("d:\\java0217");
List<File> list=new ArrayList<File>();
fileToList(dir,list);
//System.out.println(list.size());

File file=new File(dir,"javalist.txt");
writeToFile(list,file.toString());
}
public static void fileToList(File dir,List<File> list)
{
File[] files=dir.listFiles();
for(File file:files)
{
if(file.isDirectory())
fileToList(file,list);
else
{
if(file.getName().endsWith(".java"))
list.add(file);
}
}
}
public static void writeToFile(List<File> list,String javaListFile)
{
BufferedWriter bufw=null;
try
{
bufw=new BufferedWriter(new FileWriter(javaListFile))

for (File f:list )
{
String path=f.getAbsolutePath();
bufw.Write(path);
bufw.newLine();
bufw.flush();
}
}
catch (IOException e)
{
throw new RuntimeException("");
}
finally
{
try
{
if (bufw!=null)
{
bufw.close();
}
}
catch (IOException e)
{
throw e;
}
}
}
}

---------------------------------------------------

/*
properties是hashtable的子类
就是说它具备map集合的特性。而且它里面存储的键值对都是字符串
是集合与IO技术相结合的集合容器
该对象的特点,可以用于键值对形式的配置文件
在加载数据时,需要固定格式:键=值

*/
import java.util.*;
import java.io.*;
class  PorpertiesDemo
{
public static void main(String[] args) throws IOException
{
loadDemo();
}
public static void loadDemo()
{
FileInputStream fis=new FileInputStream("info.txt")'
Properties prop=new Properties();
//将流中的数据加载集合
prop.load(fis);
prop.setProperties("wangwu","39");
FileOutputStream fos=new FileOutputStream("info.txt");
prop.store(fos,"xiugai")
//System.out.println(prop);
//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();
while ((line=bufr.readLine())!=null)
{
String[] arr=line.split("=");
//System.out.println(srr[0]+"...."+arr[1]);
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.setPorperty("lisi"+"89"+" ");

Set<String> names=prop.stringPropertyName();
for(String name:names)
{
String value=prop.getProperty(name);
System.out.println(name+":"+value);
}
}
}

----------------------------------------

MIME规范—MIME类型大全

我只是将W3C中的两个表格整理成了二维数组的格式: * 按照内容类型排列的 Mime 类型列表 *按照文件扩展名排列的 Mime 类型列表...
  • u014587769
  • u014587769
  • 2016年04月06日 14:46
  • 7336

配置文件的使用 Properties

 java.util 类 Properties java.lang.Object java.util.Dictionary java.util.HashtableObjec...
  • xianzgiyou
  • xianzgiyou
  • 2015年08月31日 14:54
  • 1637

Java properties存储与读取遍历

一、向Properties中添加属性 public Object setProperty(String key, String value) 调用...
  • tterminator
  • tterminator
  • 2016年03月02日 16:33
  • 2593

day20File类,各方法。递归。删除一带内容的目录。Properties 。记录应用程序运行次数。打印流。切割合并文件。

/* File类,各方法。递归。删除一个带内容的目录。Properties 。记录应用程序运行次数。打印流。切割合并文件。 */ /* File类 用来将文件或者文件夹封装成对象。 方便对文件与文...
  • luck28
  • luck28
  • 2013年05月23日 11:20
  • 1270

【20】IO流3_File类,递归,Properties,合并流,切割文件

7.11  File类常见方法: 1,创建。          booleancreateNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false。            ...
  • u011112840
  • u011112840
  • 2013年07月18日 07:11
  • 924

黑马程序员_day20 (File,列出目录下所有内容,Properties,PrintWriter)。

---------------------- android培训、java培训 期待与您交流! ---------------------- 一:File类。  1,用来将文件或者文件夹封装成对象...
  • zzy203344
  • zzy203344
  • 2012年08月25日 23:59
  • 378

黑马程序员——Java基础——File文件操作、Properties类、打印流、序列流

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -----...
  • lifeoflive521
  • lifeoflive521
  • 2015年05月07日 17:00
  • 346

黑马程序员——第20天——IO输入与输出(File类,Properties,打印流,合并流,切割文件)

File类常见方法: 1,创建。 boolean createNewFile();在指定位置创建文件,如果该文件已经存在,则不创建,返回false. 和输出流不一样,输出流对象一建立创建文件...
  • lgl092389
  • lgl092389
  • 2015年01月10日 12:05
  • 335

Java基础——IO流File类-Properties-PrinWriter-合并流-切割文件

1.   IO流File类 概述 用来将文件或者文件夹封装成对象 方便对文件与文件夹的属性信息进行操作。 File对象可以作为参数传递给流的构造函数。 弥补了流对象的不足,流对象能操作文件,不能操作...
  • Mr_YangXianfa__
  • Mr_YangXianfa__
  • 2015年05月11日 00:19
  • 565

黑马程序员_Java第20天知识总结_File类_Properties_打印流_文件切割合并

------- android培训、java培训、期待与您交流! ---------- File类常见方法: 1,创建。 boolean createNewFile():在指定位置创建文件,如果...
  • v191211
  • v191211
  • 2013年05月20日 05:19
  • 372
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:day20File类,文件列表文件,properties
举报原因:
原因补充:

(最多只允许输入30个字)