1,Properties
package javaBase;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.*;
public class SystemDemo {
public static void main(String[] args) {
//Properties 是一个Map
Properties prop = System.getProperties();
prop.setProperty("name", "xukunn");
String name = prop.getProperty("name");
System.out.println("name = "+name);
//增强型for循环
for(Object obj:prop.keySet()){
String value = (String)prop.get(obj);
System.out.println(obj+"::"+value);
}
}
/**
* properties输出到文件
*/
public static void list2File(Properties prop ) throws FileNotFoundException{
prop.list(new PrintStream("systemInfo.txt"));
}
/**
* properties输出到控制台
*/
public static void list2Console(Properties prop ) {
prop.list(System.out);
}
}
properties练习
package javaBase.io.others;
import java.io.*;
import java.util.*;
public class PropertiesDemo {
public static void main(String[] args) throws IOException {
// setGet();
// getIni("sys.ini");
loadStore();
}
/*
* properties 自带的方法读取
*/
public static void loadStore() throws IOException{
Properties prop = new Properties();
FileInputStream in = new FileInputStream("sys.ini");
prop.load(in);
System.out.println(prop);
prop.setProperty("sunhao", "18");
FileOutputStream out = new FileOutputStream("sys.ini");
prop.store(out, "haha");
prop.list(System.out);
out.close();
in.close();
}
public static void setGet(){
Properties prop = new Properties();
prop.setProperty("xukunn", 26+"");//全是字符串
prop.setProperty("rambo", "35");
Set<String> names = prop.stringPropertyNames();//提取key
for(String name:names){
System.out.println(name+": "+prop.getProperty(name));
}
}
/*
* 从文件读取
*/
public static void getIni(String fileName) throws IOException{
BufferedReader br = new BufferedReader(new FileReader(fileName));
Properties prop = new Properties();
String line = null;
while((line = br.readLine())!=null){
String [] ary = line.split("=");
prop.setProperty(ary[0], ary[1]);
}
System.out.println(prop);
br.close();
}
}
2.File类
package javaBase.io.others;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
/*
* File类
*/
public class FileDemo {
public static void main(String[] args) throws IOException{
File f1 = new File("e:\\abc","a.txt");//如果文件已经存在,不创建。。。而用输出流的话会覆盖
File f2 = new File("e:"+File.separator+"abc"+File.separator+"b.txt");//可以跨平台
if(!f1.exists()){
f1.createNewFile();//如果abc目录不存在,会抛异常找不到指定路径
}
f2.createNewFile();
f2.deleteOnExit();//程序退出删除
f1.delete();//直接删除
listDemo(f1.getParentFile());//获取f1当前目录
listFilter(new File("E:\\Admin\\workspace\\itHeima"));
list();
}
/*
* 返回当前目录下的所有文件名
*/
public static void listDemo(File file){
String[] names = file.list();//file封装了一个目录,必须存在
for(String name :names){
System.out.println(name);
}
}
/*
* 列出当前目录下的所有txt文件
*/
public static void listFilter(File file){
String[] names = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
// System.out.println("dir: "+dir+"name: "+name);//当不清楚参数可以打印一下看看
return name.endsWith(".txt");
}
});
for(String name:names){
System.out.println(name);
}
}
/*
* 列出文件,不仅仅是文件名
*/
public static void list(){
File dir = new File("E:\\Admin\\workspace\\itHeima");
File[] files = dir.listFiles();//File包含了很多有用信息
for(File f:files){
System.out.println(f.getName()+"::"+f.length());
}
}
}
递归删除目录下的所有文件
package javaBase.io.others;
import java.io.File;
public class DeleteDir {
public static void main(String[] args) {
removeDir(new File("c:\\temp"));
}
/*
* windows删除是从里往外删,递归
*/
public static void removeDir(File dir){
File[] files = dir.listFiles();
for(File f:files){
if(f.isDirectory())
removeDir(f);
else
f.delete();
}
dir.delete();//如果不写这一句,文件都删了,目录都还在
}
}