zoukankan      html  css  js  c++  java
  • Java篇-File类之常用操作

    /**
     * 
     */
    package com.io.file;
    
    import java.io.File;
    import java.io.IOException;
    
    /**
     * <pre>
     * <b>.</b>
     * <b>Description:</b> 
     *    file的工具类:包括遍历等
     * <b>Author:</b> @xieji
     * <b>Date:</b> 2016年11月14日 上午11:26:27
     * <b>Copyright:</b> Copyright ©2013-2017  https://github.com/Jacob233 (github主页 0.0)
     * <b>Changelog:</b>
     *   Ver   Date                         Author                   Detail
     *   --------------------------------------------------------------------------------
     *   1.0   2016年11月14日 上午11:26:27              @xieji
     * </pre>
     */
    public class FileUtils {
        public void listDir(File file) throws IOException {
            // 判读file是否存在,不存在抛出异常
            if (!file.exists()) {
                new IllegalArgumentException("文件目录:" + file + "不存在");
            }
            // 判断文件是否是目录文件
            if (!file.isDirectory()) {
                new IllegalArgumentException("该文件:" + file + "不是目录文件");
            }
            // 得到该目录文件下的所有子文件名称
            // String listFileS[] = file.list();
            // for (String childFile : listFileS) {
            // System.out.println(childFile);
            // }
            // 得到该目录下的所有子文件
            File listFile[] = file.listFiles();
            // for(File childFile:listFile){
            // System.out.println(childFile);
            // }
            // 得到该目录下的所有子文件及子文件目录中的文件
            if (listFile != null && listFile.length > 0) {
                for (File childFile : listFile) {
                    // 如果其是子文件目录,则遍历其子文件
                    if (childFile.isDirectory()) {
                        // 递归
                        listDir(childFile);
                    }
                    System.out.println(childFile);
                }
            }
        }
    }
    

    文件读写类RandomAccessFile的应用

    /**
     * 
     */
    package com.io.file;
    
    import java.io.File;
    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.util.Arrays;
    
    /**
     * <pre>
     * <b>.</b>
     * <b>Description:</b> 
     *    RandomAccessFile:随机读写文件类
     *      读写:文件的写入,只写入一个byte,从后八位写入 读,只读一个byte,读完后,指针自动指向下一个byte
     *          文件读写完成后一定关闭
     *      模式:两种:rw、r
     *      关闭:文件用完即关
     * <b>Author:</b> @xieji
     * <b>Date:</b> 2016年11月14日 下午2:19:21
     * <b>Copyright:</b> Copyright ©2013-2017  https://github.com/Jacob233 (github主页 0.0)
     * <b>Changelog:</b>
     *   Ver   Date                         Author                   Detail
     *   --------------------------------------------------------------------------------
     *   1.0   2016年11月14日 下午2:19:21              @xieji
     * </pre>
     */
    public class RAFDemo {
        // 随机读写文件测试
        public void testRAF() throws IOException {
            File demo = new File("demo");
            // 判断file是否存在,若不存在则创建
            if (!demo.exists()) {
                demo.mkdir();
            }
            // 判断file是否存在文件,若不存在则创建
            File content = new File(demo, "raf.txt");
            if (!content.exists()) {
                content.createNewFile();
            }
            // 获取读写文件类randomAccessFile(模式为读写rw,还有一种模式是r)
            RandomAccessFile raf = new RandomAccessFile(content, "rw");
            // raf通过指针实现随机读写
            System.out.print(raf.getFilePointer() + " ");// 初始指针
            // 写入(指针在移动)
            raf.write('A');
            System.out.print(raf.getFilePointer() + " ");
            raf.write('B');
            System.out.print(raf.getFilePointer() + " ");
            // 1.写入整形 :写入只能从后八位,测试通过int最大数
            int maxInt = 0x7fffffff;
            raf.write(maxInt >>> 24 & 0xff);// 向右移动24位,即高八位
            raf.write(maxInt >>> 16 & 0xff);
            raf.write(maxInt >>> 8 & 0xff);
            raf.write(maxInt >>> 0 & 0xff);
            // 上述代码,可用下面的一行代替
            // raf.writeInt(maxInt);
            System.out.print(raf.getFilePointer() + " ");
            // 2.写入字符串
            String word = "谢";
            byte b[] = word.getBytes("gbk");
            raf.write(b);
            System.out.println(raf.length());
            System.out.print(raf.getFilePointer() + " ");
    
            raf.writeChars(word);
            System.out.print(raf.getFilePointer() + " ");
            System.out.println();
            // 读取文件
            byte[] bytes = new byte[(int) raf.length()];
            // 先将指针只会头节点
            raf.seek(0);
            raf.read(bytes);
            System.out.println(Arrays.toString(bytes));
            // for (byte c : bytes) {
            // System.out.print(Integer.toHexString(c&0xff)+" ");
            // }
            // 关闭
            raf.close();
        }
    }
    
  • 相关阅读:
    vmware ubuntu 异常关机无法连接到网络
    Speed up GCC link
    常用的一些解压命令
    Log4j 漏洞复现
    Test Case Design method Boundary value analysis and Equivalence partitioning
    CCA (Citrix Certified Administrator) exam of “Implementing Citrix XenDesktop 4”
    What is Key Word driven Testing?
    SAP AGS面试小结
    腾讯2013终端实习生一面
    指针的引用
  • 原文地址:https://www.cnblogs.com/xieji233/p/6155605.html
Copyright © 2011-2022 走看看