IO相关类
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();//如果不写这一句,文件都删了,目录都还在 } }