• Java学习笔记43(打印流、IO流工具类简单介绍)


    打印流:

    有两个类:PrintStream,PrintWriter类,两个类的方法一致,区别在于构造器

    PrintStream:构造方法:接收File类型,接收字符串文件名,接收字节输出流(OutputStream)

    PringWriter:构造方法:接收File类型,接收字符串文件名,接收字节输出流(OutputStream),接收字符输出流(Writer)

    为其他流添加功能,可以方便地打印各种数据值,不同的是:它永远不会抛出IO异常

    方法:

    package demo;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
    
    public class PrintWriterDemo {
        public static void main(String[] args) throws IOException {
            function1();
            function2();
            function3();
        }
    
        public static void function1() throws FileNotFoundException {
            File file = new File("d:\1.txt");
            PrintWriter pw = new PrintWriter(file);
            pw.println(100);// 写入的不是d,而是100,原样打印
            pw.write(100);// 写入的是d
            pw.flush();
            pw.close();
        }
    
        public static void function2() throws FileNotFoundException {
            FileOutputStream fos1 = new FileOutputStream("d:\2.txt");
            PrintWriter pw1 = new PrintWriter(fos1);
            pw1.println("打印流");
            pw1.flush();
            pw1.close();
        }
    
        public static void function3() throws IOException {
            FileWriter fw1 = new FileWriter("d:\4.txt");
            PrintWriter pw1 = new PrintWriter(fw1);
            pw1.println("打印流");
            pw1.flush();
            pw1.close();
        }
    }

    打印流自动刷新:

    package demo;
    
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.PrintWriter;
    
    public class PrintWriterDemo {
        public static void main(String[] args) throws IOException {
            function1();
        }
    
        public static void function1() throws FileNotFoundException {
            FileOutputStream fos1 = new FileOutputStream("d:\1.txt");
            PrintWriter pw1 = new PrintWriter(fos1, true);
            // 第二个参数是否自动书刷新,如果是,不需要写flush方法
            pw1.println("I");
            pw1.println("Love");
            pw1.println("You");
            pw1.close();
        }
    }

    打印流复制文本文件:

    package demo;
    
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
    
    public class Copy {
        public static void main(String[] args) throws IOException {
            BufferedReader bfr1 = new BufferedReader(new FileReader("d:\1.txt"));
            PrintWriter pw1 = new PrintWriter(new FileWriter("d:\2.txt"), true);
            String line = null;
            while ((line = bfr1.readLine()) != null) {
                pw1.println(line);
            }
            pw1.close();
            bfr1.close();
        }
    }

    最后简单写下工具类,可以大幅度降低代码量:

    apache的commons工具类:

    官网下载,复制到当前工程下的新建lib文件夹,右键build path即可

    几个功能强大的常用方法:

    package demo;
    
    import java.io.File;
    import java.io.IOException;
    
    import org.apache.commons.io.FileUtils;
    import org.apache.commons.io.FilenameUtils;
    
    public class CommonsDemo {
        public static void main(String[] args) throws IOException {
            function1();//文件名操作
            function2();//文件操作
        }
        public static void function1(){
            String name = FilenameUtils.getExtension("a.java");
            System.out.println(name);//输出:java
            
            String filename = FilenameUtils.getName("d:\b.java");
            System.out.println(filename);//输出:b.java
            
            boolean a = FilenameUtils.isExtension("c.java", "java");
            System.out.println(a);//输出true,判断文件后缀的方法
        }    
        
        public static void function2() throws IOException{
            //读取文本文件的内容
            String s1 = FileUtils.readFileToString(new File("d:\1.txt"));
            System.out.println(s1);
            
            //写文本文件
            FileUtils.writeStringToFile(new File("d:\b.txt"), "java");
            //这里就创建了一个文本文件,并写入字符串java
            
            //复制文件(不限于文本)
            FileUtils.copyFile(new File("d:\1.txt"), new File("d:\11.txt"));
            
            //复制文件夹
            FileUtils.copyDirectoryToDirectory(new File("f:\new"), new File("d:\new"));
        }
    }
  • 相关阅读:
    css3新特性合集
    前端面试必备的css盒子模型
    激动人心的第一天啊
    Simulink 自动代码生成原理
    什么是 Target Language Compiler
    A*算法 (MATLAB) -路径搜索
    路径搜索 – Dijkstra 算法 (MATLAB实现)
    客户端测试
    test
    【AtCoder Regular Contest 110 选做】D
  • 原文地址:https://www.cnblogs.com/xuyiqing/p/8306566.html
Copyright © 2020-2023  润新知