package file; import java.io.*; public class FileReader { public static void main(String[] args){ // Demo1(); // Demo2(); // Demo3(); // Demo4(); // Demo5(); //Demo6(); Demo7(); } //file的使用例子 public static void Demo1() { File f = new File("e:\file"); if(f.isDirectory()) { System.out.println(f.getPath()); } } public static void Demo2() { File f; //File.separator是分隔符,因为不同平台可能用的不一样,windows可能用\而linux可能用// f = new File("e:" + File.separator + "file" + File.separator + "io.txt");//获得路径句柄 try { System.out.println(f.createNewFile());//创建文件 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //f.delete(); System.out.println(f.getPath()); } public static void Demo3() { File f=new File("e:\file\demo.txt");//构造一个路径的句柄 System.out.println(f.getPath()); System.out.println(f.getParent()); if(f.exists())//如果文件存在则删除,不存在则生成 { f.delete(); //System.out.println("文件已经存在!"); } else { try { System.out.println(f.createNewFile()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void Demo4() { File file=new File("e:"+File.separator+"file");//获得e:file文件句柄 String[] str=file.list();//使用list()将里面的文件都放在String 数组里 for(int i=0;i<str.length;i++) { System.out.println(str[i]); } } public static void fun(File f){ //判断给定的路径是否是目录,如果是目录在列出 if(f.isDirectory()){ File[] file = f.listFiles(); //再依次循环进行判断 try{ for(int i = 0;i < file.length;i++){ //继续把内容传入到fun方法之中进行验证 fun(file[i]); } }catch(Exception e){} } else{ System.out.println(f); } } //使用递归调用 扫描e盘所有的文件 public static void Demo5() { File file=new File("e:\"); fun(file); } //fileInputStream的使用例子 public static void Demo6()//错误例子,不能直接用String将字节流转为字符,应该用InputStreamReader { try { File file=new File("e:"+File.separator+"file"+File.separator+"io.txt"); FileInputStream fis=new FileInputStream(file); byte[] b=new byte[fis.available()]; fis.read(b);//将文件的内容读取到byte数组中 fis.close(); String str=new String(b);//怎么会乱码??? System.out.println(str); } catch(IOException e) { e.printStackTrace(); } } public static void Demo7() { try { String encoding="GBK"; File file=new File("e:"+File.separator+"file"+File.separator+"io.txt"); FileInputStream fis=new FileInputStream(file);//从句柄中读取文件的字节流,创建字节流对象 if(file.isFile() && file.exists()) { InputStreamReader isr=new InputStreamReader(fis,encoding);//将字节流转化为字符流,创建字符流对象 BufferedReader bfr=new BufferedReader(isr);//BufferedReader对使用者输入的字符进行缓冲 String line=null; while((line=bfr.readLine())!=null) { System.out.println(line); } bfr.close(); } } catch(IOException e) { e.printStackTrace(); } } }