• Java之文件


      文件处理是最常见的I/O处理。在实际的编程中不可避免的用到。Java的文件操作涉及的类其实也不多,好好总结一下,感觉也不难。

    A)File类

    欲对文件进行操作首先需要知道文件的有关信息,如文件的名称、路径、属性等。Java中通过File类来提供所有这些。File类提供了一种与机器无关的方式来描述一个文件的信息。每个File类对象表示一个磁盘文件或目录。

    File类常用构造方法
    构造方法 描述
    public File(String path) 用path参数创建File对象所对应的磁盘文件或目录
    public File(String path,String name) 以path为路径,以name为文件或目录名创建File对象
    public File(File dir,String name) 以dir为目录,以name为文件或目录
    File类常用方法
    方法 描述
    public String getName() 获取文件名或目录
    public String AbsolutePath() 获取文件或目录的绝对路径
    public String getParent() 获取文件或目录的上一级目录
    public boolean canWrite()  测试文件是否可写
    public boolean isDirectory() 测试当前File对象是否为目录
    public String renameTo(File newName) 文件改名
    public boolean mkdir() 创建单级目录
    public String[] list() 获取当前目录下的所有文件或目录

    B)FileInputStream类和FileOutputStream类

    FileInputStream类和FileOutputStream类 分别继承自InputStream、OutputStream,它们重写或实现了父类中的所有有方法,因此在此节中不再介绍它们的常用方法请参见笔者此篇:http://www.cnblogs.com/byirain/archive/2013/03/03/2937814.html

    a) FileInputStream

      主要用来处理二进制文件的读取工作。

    FileInputStream类的常用构造方法
    构造方法 描述
    public FileInputStream(String name) 以name为文件名创建FileInputStream对象
    public FileInputStream(File file) 以file为文件名创建FileInputStream对象

    b)FileOutputStream

    主要用来处理二进制文件的写入工作。

    FileOutputStream类的常用构造方法
    public FileOutputStream(String name) 以name为文件名创建
    public FileOutputStream(String name,boolean a) 同上,但若a为true,则数据追加在原数据之后
    public FileOutputStream(File file) file为文件名创建

    C)FileReader类和FileWriter类

    FileReader类和FileWriter类与FileInputStream类和FileOutputStream类相似,不同之处在于前者处理的单位为字符(char)后者为字节(byte),在此不再赘述。

    D)文件常用操作

    费话不说,请看源码:

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class TestFile {
        /**
         * 
         * @param path
         *            创建的目录名,绝对路径
         */
        public static File CreateDir(String path) {
            File fileDir = new File(path);
            if (!fileDir.exists()) {
                fileDir.mkdirs();
                return fileDir;
            }
            System.out.println("目录已存在");
            return fileDir;
        }
    
        /**
         * 
         * @param path
         *            绝对路径名
         * @param name
         *            文件名
         * @return 文件对象
         */
        public static File CreateFile(String path, String name) {
            CreateDir(path);
            File file = new File(path + File.separator + name);
            if (!file.exists()) {
                try {
                    file.createNewFile();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return file;
            }
            System.out.println("文件已存在");
            return file;
        }
    
        /**
         * 
         * @param path
         *            绝对路径名
         * @param name
         *            文件名
         * @return 是否删除成功
         */
        public static boolean DelFile(String path, String name) {
            File file = new File(path + File.separator + name);
            if (file.exists()) {
                file.delete();
                return true;
            }
            System.out.println("文件不存在");
            return false;
        }
    
        /**
         * 
         * @param fromFile
         *            源文件
         * @param toFilePath
         *            目的文件路径
         * @param toFileName
         *            目的文件名
         * @throws IOException 
         */
        public static void copyFile(String fromFile, String toFilePath,
                String toFileName) throws IOException {
            File Ffile = new File(fromFile);
            if (!Ffile.exists()) {
                System.err.println("源文件不存在");
                return;
            }
            // 建立目的文件
            File Tfile = CreateFile(toFilePath, toFileName);
            
            //利用FileInputStream 与 FileOutputStream完成文件copy
            FileInputStream fin = new FileInputStream(Ffile);
            byte[] b = new byte[fin.available()];
            fin.read(b);
            FileOutputStream fout = new FileOutputStream(Tfile);
            fout.write(b);
            System.out.println("copy finished!");
            fin.close();
            fout.close();
        }
    
    }
  • 相关阅读:
    “浪潮杯”第九届山东省ACM大学生程序设计竞赛 F: Four-tuples容斥定理
    B
    C. Tourist Problem 2021.3.29 晚vj拉题 cf 1600 纯数学题
    C. Sum of Cubes
    Day29、Python中的异常处理及元类
    isinstance,issubclass,反射,内置方法(__str__,__del__,__call__)
    绑定方法与非绑定方法;classmethod及staticmethod装饰器
    组合,多态,封装
    类的继承
    面向对象编程思想基本介绍,类与对象的基本使用,属性查找,绑定方法
  • 原文地址:https://www.cnblogs.com/byghui/p/2941493.html
Copyright © 2020-2023  润新知