Java学习 第五章 java本地文件操作

1、File类,文件的创建、删除、重命名

  File 是属于java.io包的。

 创建一个HelloFile.java文件,创建File对象;

import java.io.File;
import java.io.IOException;
public class HelloFile {
    public static void main(String[] args) {
        // 创建一个文件对象 
        File file = new File("hello.txt");
        //File file = new File("../../hello.txt");
        // 文件是否存在
        if(file.exists()) {
            
            //文件
            file.isFile();
            //路径(文件夹)
            file.isDirectory();
            //文件重命名,文件夹结构必须处于同一个分区
            File nameto = new File("src/new Hello.txt");
            file.renameTo(nameto);
            //删除文件
            //file.delete();
        }else {
                try {
                    file.createNewFile();
                    System.out.println("文件创建成功");
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    System.out.println("无法创建文件");
                }
        
        }
        
    }
}

 

2、文件夹的创建、重命名、删除

import java.io.File;

public class HelloFolder {

    public static void main(String[] args) {
        File folder = new File("my new folder");
        //File folder = new File("my new folder/one/two/three");
        //folder.mkdirs();创建多级文件夹
        if(folder.mkdir()) {
            System.out.println("文件夹创建完成");
        }else {
            if(folder.exists()) {
                System.out.println("文件夹已存在不用创建");
            }else {
                System.out.println("文件夹创建失败");
            }
            
        }
        File newfolder = new File("my new folder-new");
        //File newfolder = new File("my new folder-new/one/2");
        //File newfolder = new File("my new folder-new/three");one和three在同一级
        if(folder.renameTo(newfolder)) {
            System.out.println("done");
        }else {
            System.out.println("fail");
        }
        //删除的文件夹必须是空的文件夹
        if(folder.delete()) {
            System.out.println("done");
        }else {
            System.out.println("fail");
        }
    }
}

3、文件属性的读取

import java.io.File;
public class ReadFileProperty {

    public static void main(String[] args) {
        File file = new File("text.text");
        //判断文件是否存在
        System.out.println("判断文件是否存在"+file.exists());
        //读取文件名称
        System.out.println("读取文件名称"+file.getName());
        //读取文件的路径
        System.out.println("读取文件路径"+file.getPath());
        //读取文件的绝对路径
        System.out.println("读取文件绝对路径"+file.getAbsolutePath());
        //获取文件父级路径
        System.out.println("获取文件父级路径"+new File(file.getAbsolutePath()).getParent());
        //读取文件大小
        System.out.println("读取文件大小"+file.length()/1000+"KB");                
        //判断文件是否被隐藏
        System.out.println("判断文件是否被隐藏"+file.isHidden());                
        //判断文件是否可读
        System.out.println("判断文件是否可读"+file.canRead());    
        //判断文件是否可写
        System.out.println("判断文件是否可写"+file.canWrite());    
        //判断文件是否为文件夹
        System.out.println("判断文件是否为文件夹"+file.isDirectory());    
    }
}

4、文件属性的设置

import java.io.File;
public class SetProperty {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        File file = new File("test.file");
        if(file.exists()    ) {
            //将文件设定为可写
            file.setWritable(true);
            //将文件设定为可读
            file.setReadable(true);
            //将文件设置为只读
            file.setReadOnly();
        }
    }

}

5、遍历文件夹

import java.io.File;


public class Scanner {

    public static void main(String[] args) {
        
        printFiles(new File("../HelloFolder"),1);
        
    }
    public static void printFiles(File dir,int tab) {
        if(dir.isDirectory()) {
            File next[] = dir.listFiles();
            for(int i = 0; i < next.length; i++) {
                for(int j = 0;j < tab; j++){
                    System.out.print("---");
                }
                System.out.println(next[i].getName());
                if(next[i].isDirectory()) {
                    printFiles(next[i],tab+1);
                }
//                if(next[i].isFile()) {
//                    System.out.println(next[i].getName());
//                }else {
//                    printFiles(next[i],tab+1);
//                }
            }
        }
    }
}

6、文件的简单读写

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
public class ReadWriteTextFile {

    public static void main(String[] args) {
        
        File file = new File("text.text");
        if(file.exists()) {
            System.out.println("exists");
            try {
                FileInputStream fis = new FileInputStream(file);
                InputStreamReader isr = new InputStreamReader(fis,"UTF-8");
                BufferedReader br = new BufferedReader(isr);
                String line;
                while((line = br.readLine()) != null) {
                    System.out.println(line);
                }
                br.close();
                isr.close();
                fis.close();
                
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
        try {
            File newfile = new File("newText.txt");
            //如果文件不存在,会自动创建
            FileOutputStream fos = new FileOutputStream(newfile);
            OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8");
            BufferedWriter bw = new BufferedWriter(osw);
            
            bw.write("测试写入");
            bw.close();
            osw.close();
            fos.close();
            System.out.println("写入完成");
        
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }
}

 

posted @ 2018-01-05 16:56  Belinda_sl  阅读(698)  评论(0编辑  收藏  举报