• java IO与文件操作


    文件创建与删除

    创建目录或文件
    • createNewFile() 需要文件目录已存在

      public class IO {
        public static void main(String args[]) {
            String dirname = "D:\java\temp.txt";
            File d = new File(dirname);
            try {
                d.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
      }
      
    • 创建目录

      • mkdir( )方法创建一个文件夹,成功则返回true,失败则返回false。失败表明File对象指定的路径已经存在,或者由于整个路径还不存在,该文件夹不能被创建。

      • mkdirs()方法创建一个文件夹和它的所有父文件夹。

        String dirname = "D:\java\temp\123";
        File d = new File(dirname);
        d.mkdirs();
        
    删除目录或文件
    public class IO {
        public static void main(String args[]) {
            // 这里修改要删除的目录或文件
            File folder = new File("D:\java\temp");
            deleteFolder(folder);
        }
    
        // 删除文件及目录
        public static void deleteFolder(File folder) {
            File[] files = folder.listFiles();
            if (files != null) {
                for (File f : files) {
                    if (f.isDirectory()) {
                        deleteFolder(f);
                    } else {
                        f.delete();
                    }
                }
            }
            folder.delete();
        }
    
    }
    

    文件读写

    1.FileOutputStream

    文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。文件是否可用或能否可以被创建取决于基础平台。特别是某些平台一次只允许一个 FileOutputStream(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败。
    FileOutputStream 用于写入诸如图像数据之类的原始字节的流。要写入字符流,请考虑使用 FileWriter。

    2.InputStreamReader

    InputStreamReader是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。
    为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如:

        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    
    3.FilterReader

    用于读取已过滤的字符流的抽象类。抽象类 FilterReader 自身提供了一些将所有请求传递给所包含的流的默认方法。FilterReader 的子类应重写这些方法中的一些方法,并且还可以提供一些额外的方法和字段。

    public class IO {
        public static void main(String args[]) throws Exception {
            File file = new File("D:\java\temp.txt");
            // 第二个参数用来决定是否追加内容还是覆盖,默认为覆盖
            // 构建FileOutputStream对象,文件不存在会自动新建
            FileOutputStream fileOutputStream = new FileOutputStream(file,true);
            // 字符流转字节流
            OutputStreamWriter writer = new OutputStreamWriter(fileOutputStream);
            writer.append("OutputStreamWriter:145
    ");
    
            // 字节流处理
            BufferedWriter bufferedWriter = new BufferedWriter(writer);
            // 此行代码是使用字节流的方式
            //bufferedWriter = new BufferedWriter(new FileWriter(file));
            bufferedWriter.append("bufferedWriter:133444
    ");
            //使用PrintWriter类
            PrintWriter printWriter = new PrintWriter(file);
            printWriter.append("PrintWriter printWriter = new PrintWriter(file);
    ");
    
            printWriter.close();
            bufferedWriter.close();
            writer.close();
            fileOutputStream.close();
    
    
             // 使用节流方式读取
            BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
            // 使用字符流方式读取
            //FileInputStream fileInputStream = new FileInputStream(file);
            //BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
            String s ;
            while ((s = bufferedReader.readLine())!=null){
                System.out.println(s);
            }
            bufferedReader.close();
        }
    }
  • 相关阅读:
    POJ
    FZU
    HDU
    HDU
    HDU
    HDU
    Educational Codeforces Round 84 E. Count The Blocks
    B Boundary(由弦求圆)
    D. Maximum Sum on Even Positions(翻转1次,求最大偶数位和)
    E. DeadLee(思维,拓扑图处理)
  • 原文地址:https://www.cnblogs.com/lifan1998/p/10402365.html
Copyright © 2020-2023  润新知