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

Posted xuyiqing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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"));
    }
}

 

以上是关于Java学习笔记43(打印流IO流工具类简单介绍)的主要内容,如果未能解决你的问题,请参考以下文章

Java学习笔记之:Java 流

Java基础学习笔记二十 IO流

Java IO流 - 打印流详细使用介绍

Java——Properties集合,Object序列化流与反序列化流,打印流,commons-IO文件工具类

IO流学习笔记

Properties-转换流-打印流-序列化和反序列化-Commons-IO工具类