zoukankan      html  css  js  c++  java
  • FileReader

    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();
            }
        }  
    }
  • 相关阅读:
    Corn Fields
    状压DP
    全排列函数
    搜索
    前缀和与差分
    最小花费
    【Lintcode】062.Search in Rotated Sorted Array
    【LeetCode】039. Combination Sum
    【LeetCode】040. Combination Sum II
    【LeetCode】047. Permutations II
  • 原文地址:https://www.cnblogs.com/qianwen/p/3907423.html
Copyright © 2011-2022 走看看