-------
android培训、
java培训、期待与您交流! ----------
File类常见方法:
1.创建
boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false;
和输出流不一样,输出流对象一建立创建文件,而且文件应经存在,会覆盖。
boolean mkdir():创建文件夹。
boolean mkdirs():创建多级文件夹
2.删除
boolean delete():删除失败返回false;如果文件正在被使用,则删除不了返回false;
void deleteOnExit();在程序退出时删除指定文件。
3.判断
boolean exists():文件名是否存在。
isFile();
isDirectory();
isHidden();
isAbsolute();
4.获取信息
getName();
getPath();
getParent();
getAbsolutePath();
lastModified();
length();
文件列表
File[] listRoots();
String[] list();
列出指定目录下文件或者文件夹,包含子目录中的内容
因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可。
在列出过程中出现的还是目录的话,还可以再次调用本功能。也就是函数自身调用自身
这种表现手法后变成手法成为递归。
递归要注意:
1.限定条件
2.要注意递归的次数,尽量避免内存溢出
删除带内容的目录
删除原理:
在window中删除目录从里面往外删的.
既然从里往外删,就要用到递归。
练习
将一个指定目录下的java文件的绝对路径,存储到一个文本文件中
建立一个java文件列表文件
思路:
1.对指定的目录进行递归
2.获取递归过程中所有的java文件路径
3.将这些路径存储到集合中
4.将集合中的数据写入到文件中
import java.io.*;
import java.until.*;
class JavaFileList{
public static void main(String[] args){
File dir = new File("d:\\java");
List<File> list = new ArrayList<File>();
fileToList(dir,list);
//System.out.println(list.size());
File file = new File(dir,"fileList.txt");
writeToList(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) throws IOException{
BufferedWriter bufw = null;
try{
bufw = new BufferedWriter(new FileWriter(jaavListFile));
for(File f : list){
Stringpath = f.getAbsolutePath();
bufw.write(path);
bufw.newLine();
bufw.flush():
}
}catche(IOException e){
throw e;
}finally{
try{
if(bufw != null){
bufw.close();
}
}catche(IOExecption e){
throw e;
}
}
}
}
关于properties的介绍与实例
properties 是hashtable的子类
也就是说它具备map集合的特点,而且它里面存储的键值对都是字符串
是集合和IO技术相结合的集合容器
该对象的特点:可以用于键值对形式的配置文件
如何将流中的数据存储到集合中
想要将info.txt中的键值数据保存到集合中进行操作
1.用一个流和info.txt文件关联
2.读取一行数据,将该行数据用“=”进行切割
3.等号左边为键右边为值,存入到Poroperties集合中
public void method_properties(){
/*BufferedReader bufr = new BufferedReader(new FilewReader("info.txt"));
String line = null;
Properties prop = new properties();
while((line = bufr.readLine()) !=null){
String[] arr = line.split("=");
prop.setProperties(arr[0],arr[1]);
}
bufr.close();
*/
//////////////////第二种方法
FileInputStream fis = new FileInputStream("info.txt");
Properties prop =new Properties();
prop.load(fis);
//设置值 prop.setProperty("name","test2");
//存到文件中 FileOutputStream fos =new FileOutputStream("info.txt"); prop.store(fos,"haha"); haha是注释信息
fisd.close();
}
//统计配置的读取和更新
import java.io.*;
import java.until.*;
class RunCount
{
public static void main(String[] args){
Properties prop =new Properties();
File file =new File("count.ini");
if(!file.exists()){
file.createNewFile();
}
FileInputStream fis =new FileInputStream(file);
prop.load(fis);
String value = prop.getProperty("time");
if(value != null){
count = Integer.parseInt(value);
if(count>=5){
System.out.println("使用次数已到");return;
}
}
count++;
prop.setProperty("time",count++);
FileOutputStream fos =new FileOutputStream(file);
prop.store(fos,"");
fos.close();
fis.close();
}
}
}
file类的实例代码:
class FileDemo
{
public static void main(String[] args) throws IOException
{
File dir =new File("c://test");
showDir(dir);
showDir1(dir,0);
}
public static void removeDir(File dir){
if(dir.exists()){
File[] files = new dir.listFiles();
for(int x=0;x<files.length;x++){
if(!files[x].isHidden() && files[x].isDirectory())
removeDir(files[x]);
else
System.out.println(files[x].toString()+"::file::"+files[x].delete());
}
System.out.println(dir+"::dir::"+dir.delete());
}
}
public static void getLevel(int level){
StringBuilder sb = new StringBuilder();
for(int x = 0;x<level;x++){
sb.append(" ")
}
return sb.toString();
}
public static void showDir1(File dir,int level){
System.out.println(getLevel(level)+dir.getName());
File[] files = dir.listFiles();
for(int x=0; x<files.length; x++)
{
if(files[x].isDirectory())
showDir(files[x]);
else
System.out.println(getLevel(level)+files[x]);
}
}
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]);
}
}
public static void listDemo2(){
File dir = new File("C:\\");
File files = dir.listFiles();
for (File file : files)
{
System.out.println(file);
}
}
public static void listDemo1(){
File f = new File("c:\\");
String[] arr = f.list(new FilenameFilter(){
public boolean accept(File dir,String name){
return name.endsWith(".bmp");
}
});
for(String s : arr){
System.out.println(name);
}
}
public static void listDemo(){
File f = new File("c:\\");
String[] names = f.list();//调用list方法的file对象必须是封装了一个目录,该目录还必须存在
for(SAtring name : names){
System.out.println(name);
}
}
public static void listRootsDemo()
{
File[] files = File.listRoots();
for(File f : files)
System.out.println(f);
}
public static void method_4()
{
File f = new File("C:\\a.txt");
File f1 = new File("D:\\b.txt");
System.out.println(f.renameTo(f1));
}
public static void method_4()
{
File f = new File("C:\\a.txt");
System.out.println("path:"+f.getPath());
System.out.println("abspath:"+f.getAbsolutePath());
System.out.println("parent:"+f.getParent());//该方法返回的是绝对路径中的父目录,若果获取的是相对路径,返回null 如果相对路径中有上一层目录那么该目录就是返回结果
System.out.println("len:"+f.getName());
}
}
File类常见方法:
1.创建
boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false;
和输出流不一样,输出流对象一建立创建文件,而且文件应经存在,会覆盖。
boolean mkdir():创建文件夹。
boolean mkdirs():创建多级文件夹
2.删除
boolean delete():删除失败返回false;如果文件正在被使用,则删除不了返回false;
void deleteOnExit();在程序退出时删除指定文件。
3.判断
boolean exists():文件名是否存在。
isFile();
isDirectory();
isHidden();
isAbsolute();
4.获取信息
getName();
getPath();
getParent();
getAbsolutePath();
lastModified();
length();
文件列表
File[] listRoots();
String[] list();
列出指定目录下文件或者文件夹,包含子目录中的内容
因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可。
在列出过程中出现的还是目录的话,还可以再次调用本功能。也就是函数自身调用自身
这种表现手法后变成手法成为递归。
递归要注意:
1.限定条件
2.要注意递归的次数,尽量避免内存溢出
删除带内容的目录
删除原理:
在window中删除目录从里面往外删的.
既然从里往外删,就要用到递归。
练习
将一个指定目录下的java文件的绝对路径,存储到一个文本文件中
建立一个java文件列表文件
思路:
1.对指定的目录进行递归
2.获取递归过程中所有的java文件路径
3.将这些路径存储到集合中
4.将集合中的数据写入到文件中
import java.io.*;
import java.until.*;
class JavaFileList{
public static void main(String[] args){
File dir = new File("d:\\java");
List<File> list = new ArrayList<File>();
fileToList(dir,list);
//System.out.println(list.size());
File file = new File(dir,"fileList.txt");
writeToList(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) throws IOException{
BufferedWriter bufw = null;
try{
bufw = new BufferedWriter(new FileWriter(jaavListFile));
for(File f : list){
Stringpath = f.getAbsolutePath();
bufw.write(path);
bufw.newLine();
bufw.flush():
}
}catche(IOException e){
throw e;
}finally{
try{
if(bufw != null){
bufw.close();
}
}catche(IOExecption e){
throw e;
}
}
}
}
关于properties的介绍与实例
properties 是hashtable的子类
也就是说它具备map集合的特点,而且它里面存储的键值对都是字符串
是集合和IO技术相结合的集合容器
该对象的特点:可以用于键值对形式的配置文件
如何将流中的数据存储到集合中
想要将info.txt中的键值数据保存到集合中进行操作
1.用一个流和info.txt文件关联
2.读取一行数据,将该行数据用“=”进行切割
3.等号左边为键右边为值,存入到Poroperties集合中
public void method_properties(){
/*BufferedReader bufr = new BufferedReader(new FilewReader("info.txt"));
String line = null;
Properties prop = new properties();
while((line = bufr.readLine()) !=null){
String[] arr = line.split("=");
prop.setProperties(arr[0],arr[1]);
}
bufr.close();
*/
//////////////////第二种方法
FileInputStream fis = new FileInputStream("info.txt");
Properties prop =new Properties();
prop.load(fis);
//设置值 prop.setProperty("name","test2");
//存到文件中 FileOutputStream fos =new FileOutputStream("info.txt"); prop.store(fos,"haha"); haha是注释信息
fisd.close();
}
//统计配置的读取和更新
import java.io.*;
import java.until.*;
class RunCount
{
public static void main(String[] args){
Properties prop =new Properties();
File file =new File("count.ini");
if(!file.exists()){
file.createNewFile();
}
FileInputStream fis =new FileInputStream(file);
prop.load(fis);
String value = prop.getProperty("time");
if(value != null){
count = Integer.parseInt(value);
if(count>=5){
System.out.println("使用次数已到");return;
}
}
count++;
prop.setProperty("time",count++);
FileOutputStream fos =new FileOutputStream(file);
prop.store(fos,"");
fos.close();
fis.close();
}
}
}
file类的实例代码:
class FileDemo
{
public static void main(String[] args) throws IOException
{
File dir =new File("c://test");
showDir(dir);
showDir1(dir,0);
}
public static void removeDir(File dir){
if(dir.exists()){
File[] files = new dir.listFiles();
for(int x=0;x<files.length;x++){
if(!files[x].isHidden() && files[x].isDirectory())
removeDir(files[x]);
else
System.out.println(files[x].toString()+"::file::"+files[x].delete());
}
System.out.println(dir+"::dir::"+dir.delete());
}
}
public static void getLevel(int level){
StringBuilder sb = new StringBuilder();
for(int x = 0;x<level;x++){
sb.append(" ")
}
return sb.toString();
}
public static void showDir1(File dir,int level){
System.out.println(getLevel(level)+dir.getName());
File[] files = dir.listFiles();
for(int x=0; x<files.length; x++)
{
if(files[x].isDirectory())
showDir(files[x]);
else
System.out.println(getLevel(level)+files[x]);
}
}
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]);
}
}
public static void listDemo2(){
File dir = new File("C:\\");
File files = dir.listFiles();
for (File file : files)
{
System.out.println(file);
}
}
public static void listDemo1(){
File f = new File("c:\\");
String[] arr = f.list(new FilenameFilter(){
public boolean accept(File dir,String name){
return name.endsWith(".bmp");
}
});
for(String s : arr){
System.out.println(name);
}
}
public static void listDemo(){
File f = new File("c:\\");
String[] names = f.list();//调用list方法的file对象必须是封装了一个目录,该目录还必须存在
for(SAtring name : names){
System.out.println(name);
}
}
public static void listRootsDemo()
{
File[] files = File.listRoots();
for(File f : files)
System.out.println(f);
}
public static void method_4()
{
File f = new File("C:\\a.txt");
File f1 = new File("D:\\b.txt");
System.out.println(f.renameTo(f1));
}
public static void method_4()
{
File f = new File("C:\\a.txt");
System.out.println("path:"+f.getPath());
System.out.println("abspath:"+f.getAbsolutePath());
System.out.println("parent:"+f.getParent());//该方法返回的是绝对路径中的父目录,若果获取的是相对路径,返回null 如果相对路径中有上一层目录那么该目录就是返回结果
System.out.println("len:"+f.getName());
}
}