Java基础程序——打印流和commons-IO

目录

一、打印流

1.1、打印流的概述

1.2、打印流完成数据自动刷新

二、commons-IO

2.1、导入jar包

2.2、 FilenameUtils

2.3、 FileUtils


一、打印流

1.1、打印流的概述

打印流添加输出数据的功能,使它们能够方便地打印各种数据值表示形式。

打印流根据流的分类:

  • 字节打印流 PrintStream
  • 字符打印流 PrintWriter

方法:

  • void print(String str): 输出任意类型的数据
  • void println(String str): 输出任意类型的数据,自动写入换行操作

代码演示:

/*
* 需求:把指定的数据,写入到printFile.txt文件中
*
* 分析:
* 1,创建流
* 2,写数据
* 3,关闭流
*/
public class PrintWriterDemo {
public static void main(String[] args) throws IOException {
//创建流
PrintWriter out = new PrintWriter("printFile.txt");
//2,写数据
for (int i=0; i<5; i++) {
out.println("helloWorld");
}
//3,关闭流
out.close();
}
}

1.2、打印流完成数据自动刷新

可以通过构造方法,完成文件数据的自动刷新功能

构造方法: 开启文件自动刷新写入功能

public PrintWriter(OutputStream out, boolean autoFlush) public PrintWriter(Writer out, boolean autoFlush)

代码演示:

/*
* 分析:
* 1,创建流
* 2,写数据
*/
public class PrintWriterDemo2 {
public static void main(String[] args) throws IOException {
//创建流
PrintWriter out = new PrintWriter(new
FileWriter("printFile.txt"), true);
//2,写数据
for (int i=0; i<5; i++) {
out.println("helloWorld");
}
//3,关闭流
out.close();
}
}

二、commons-IO

2.1、导入jar包

  • 打开IDEA,点击File,选择Project Structure,或者直接使用快捷键 Ctrl+Alt+Shift+S
  • 选择modules,然后选择Dependencies,点击加号,引入jar包
  • 引入成功后,回到界面点开左侧的External Liberals,就能看到刚刚引入的包。

2.2、 FilenameUtils

这个工具类是用来处理文件名(译者注:包含文件路径)的,他可以轻松解决不同操作 系统文件名称规范不同的问题。

常用方法:

  • getExtension(String path):获取文件的扩展名;
  • getName():获取文件名;
  • isExtension(String fileName,String ext):判断fileName是否是ext后缀名;
public class CommonsIODemo {
    public static void main(String[] args) {
        String extension = FilenameUtils.getExtension("abc.txt");
        System.out.println("文件扩展名:"+extension);

        String name = FilenameUtils.getName("D:\\实训\\Demo\\src\\test\\abc.txt");
        System.out.println("文件名"+name);

        boolean result = FilenameUtils.isExtension(name, "txt");
        System.out.println("文件是否是txt:"+result);

    }
}

2.3、 FileUtils

提供文件操作(移动文件,读取文件,检查文件是否存在等等)的方法。

常用方法:

  • readFileToString(File file):读取文件内容,并返回一个String;
  • writeStringToFile(File file,String content):将内容content写入到file中
  • copyDirectoryToDirectory(File srcDir,File destDir):文件夹复制;
  • copyFile(File srcFile,File destFile):文件夹复制;

代码演示:

/*
* 完成文件的复制
*/
public class CommonsIODemo01 {
public static void main(String[] args) throws IOException {
//method1("D:\\test.mp4", "D:\\copy.mp4");
//通过Commons-IO完成了文件复制的功能
FileUtils.copyFile(new File("D:\\test.mp4"), new
File("D:\\copy.mp4"));
}
//文件的复制
private static void method1(String src, String dest) throws
IOException {
//1,指定数据源
BufferedInputStream in = new BufferedInputStream(new
FileInputStream(src));
//2,指定目的地
BufferedOutputStream out = new BufferedOutputStream(new
FileOutputStream(dest));
//3,读
byte[] buffer = new byte[1024];
int len = -1;
while ( (len = in.read(buffer)) != -1) {
//4,写
out.write(buffer, 0, len);
}
//5,关闭流
in.close();
out.close();
}
}
/*
* 完成文件、文件夹的复制
*/
public class CommonsIODemo02 {
public static void main(String[] args) throws IOException {
//通过Commons-IO完成了文件复制的功能
FileUtils.copyFile(new File("D:\\test.mp4"), new
File("D:\\copy.mp4"));
//通过Commons-IO完成了文件夹复制的功能
//E:\image 复制到 D:\\image文件夹下
FileUtils.copyDirectoryToDirectory(new
File("D:\\image"), new File("D:\\image"));
}
}

你可能感兴趣的:(Java,Java,打印流)