[进阶]Java:打印流、Properties、common-io框架

这篇具有很好参考价值的文章主要介绍了[进阶]Java:打印流、Properties、common-io框架。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

打印流:

  • 作用:打印流可以实现方便、高效的打印数据到文件中去。打印流一般是:PrintStream,PrintWriter两个类。
  • 可以实现打印什么数据就是什么数据,例如打印整数97写出去就是97,打印boolean的true,写出去就是true。

 [进阶]Java:打印流、Properties、common-io框架

 代码演示如下:

public class PrintDemo1 {
    public static void main(String[] args) throws Exception{
        //1.创建一个打印流对象
        PrintStream ps =new PrintStream("io-app2/src/ps.txt");

        ps.println(97);
        ps.println('a');
        ps.println(23.3);
        ps.println(true);
        ps.println("我是打印流输出的,我是啥就打印啥!");
        ps.close();
    }
}

[进阶]Java:打印流、Properties、common-io框架

 PrintStream和PrintWriter的区别

  • 打印数据功能上是一模一样的,都是使用方便,性能高效(核心优势)
  • PrintStream继承自字节输出流OutputStream,支持写字节数据的方法。
  • PrintWriter继承自字符输出流Writer,支持写字符数据出去。

1.打印流有几种?各有什么特点?

  • 打印流一般是指:PrintStream,PrintWriter两个类。
  • 打印功能二者是一样的使用方式
  • PrintStream继承自字节输出流OutputStream,支持写字节
  • PrintWriter继承自字符输出流Writer,支持写字符

2.打印流的优势是什么?

  • 两者在打印功能上都是使用方便,性能高效(核心优势)

输出语句重定向

  • 属于打印流的一种应用,可以把输出语句的打印位置改到文件。

代码演示如下:

public class PrintDemo2 {
    public static void main(String[] args) throws Exception{
        System.out.println("锦瑟无端五十弦");
        System.out.println("一弦一柱思华年");

        // 改变输出语句的位置(重定向)
        PrintStream ps = new PrintStream("io-app2/src/log.txt");
        System.setOut(ps); // 把系统打印流改成我们自己的打印流

        System.out.println("庄生晓梦迷蝴蝶");
        System.out.println("望帝春心托杜鹃");
    }
}

Properties属性集对象

  • 其实就是一个Map集合,但是我们一般不会当集合使用,因为HashMap更好用。

Propertie核心作用:

  • Properties代表的是一个属性文件,可以把自己对象中的键值对信息存入到一个属性文件中去。
  • 属性文件:后缀是.properties结尾的文件,里面的内容都是key=value,后续做系统配置信息的。

代码演示如下:

public class PropertiesDemo01 {
    public static void main(String[] args) throws Exception{
        //需求:使用Properties把键值对信息存入到属性文件中去。
        Properties properties = new Properties();
        properties.setProperty("admin","123456");
        properties.setProperty("tomato","654321");
        properties.setProperty("heima","itcast");
        System.out.println(properties);

        /**
           参数一:保存管道 字符输出流管道
           参数二:保存心得
         */
        properties.store(new FileWriter("io-app2/src/users.properties"),"Wow!this is a bug!");
    }
}

[进阶]Java:打印流、Properties、common-io框架

 代码演示如下:

public class PropertiesDemo02 {
    public static void main(String[] args) throws Exception{
        //需求:Properties读取属性文件中的键值对信息。(读取)
        Properties properties = new Properties();
        System.out.println(properties);

        // 加载属性文件中的键值对数据到属性对象properties中去
        properties.load(new FileReader("io-app2/src/users.properties"));

        System.out.println(properties);
        String rs = properties.getProperty("dlei");
        System.out.println(rs);
        String rs1 = properties.getProperty("admin");
        System.out.println(rs1);
    }
}

Properties的作用?

1.可以存储Properties属性集的键值对数据到属性文件中去:

void store(Writer writer,String comments)

2.可以加载属性文件中的数据到Properties对象中来:

void load(Reader reader)

commins-io概述

  • commons-io是apache开源基金组织提供的一组有关IO操作的类库,可以提高IO功能开发的效率。
  • commons-io工具包提供了很多有关io操作的类。有两个主要的类FileUtils,IOUtils

[进阶]Java:打印流、Properties、common-io框架

导入commons-io-2.6.jar做开发

需求

  • 使用commons-io简化io流读写

分析文章来源地址https://www.toymoban.com/news/detail-491303.html

  1. 在项目中创建一个文件夹:lib
  2. 在commons-io-2.6.jar文件复制到lib文件夹
  3. 在jar文件上点右键,选择Add as Library -> 点击OK
  4. 在类中导包使用
public class CommonsIODemo01 {
    public static void main(String[] args) throws Exception{
        //1.完成文件复制
        IOUtils.copy(new FileInputStream("H:\\A桌面\\mac.jpg"),new FileOutputStream("H:\\A桌面\\mac02.jpg"));

        //2.完成文件复制到某个文件夹下!
        FileUtils.copyFileToDirectory(new File("H:\\A桌面\\mac.jpg"),new File("H:/"));

        //3.完成文件夹复制到某个文件夹下!
        FileUtils.copyDirectoryToDirectory(new File("H:\\B学习资料"),new File("H:\\new"));
        FileUtils.deleteDirectory(new File("H:\\new"));

        //JDK1.7 自己也做了一些一行代码完成复制的操作:New IO的技术
        Files.copy(Path.of("H:\\A桌面\\mac.jpg"),Path.of("H:\\A桌面\\mac03.jpg"));
    }
}

到了这里,关于[进阶]Java:打印流、Properties、common-io框架的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JAVA深化篇_26——Apache commons-io工具包的使用

    Apache基金会介绍 Apache软件基金会(也就是Apache Software Foundation,简称为ASF),是专门为支持开源软件项目而办的一个非盈利性组织。在它所支持的Apache项目与子项目中,所发行的软件产品都遵循Apache许可证(Apache License)。 官方网址为:www.apache.org 。 很多著名的Java开源项目

    2024年02月06日
    浏览(62)
  • java.lang.NoClassDefFoundError: org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream

    一、问题现象 在导出 Excel 过程中,程序报错如下: 二、问题原因 通过报错信息可以看出,这个异常通常出现在你在代码里使用了 org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream 这个类,但是该类所在的依赖包 commons-io 并没有被引入或不存在。 三、解决方案 解决这个问题

    2024年02月10日
    浏览(65)
  • Java IO流 - 打印流详细使用介绍

    打印流基本使用 打印流 : 作用:打印流可以 实现更方便、更高效的打印数据到文件中去 。打印流一般是指:PrintStream,PrintWriter两个类。 可以实现 打印什么数据就是什么数据 ,例如打印整数97写出去就是97,打印boolean的true,写出去就是true。 打印流PrintStream构造器如下 : 构

    2024年02月02日
    浏览(44)
  • Caused by: java.io.FileNotFoundException: class path resource [datasourc.properties] cannot be opene

    异常: Caused by: java.io.FileNotFoundException: class path resource [文件名] cannot be opened because it does not exist 原因: 资源无法打开,因为它不存在 在Maven项目里面资源 默认生成的类路径是src/main/java ,如果你所需要的文件不在这个目录下,项目编译器输出里就不会有该文件(即便你的项目

    2024年02月07日
    浏览(43)
  • 报错Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/io

    报错: 原因 :这里version 版本未指定,去远程仓库找最新发布版本的构件,可能会冲突 先根据version版本去本地仓库找,如果本地仓库找不到,再判断版本号是否为明确版本号,如果版本号明确,会从远程仓库下载相应版本的依赖 如果版本号不明确,如 RELEASE、LATEST 和 SNAP

    2024年04月12日
    浏览(53)
  • 已解决selenium.common.exceptions.JavascriptException: Message: javascript error: Cannot read properties

    已解决selenium.common.exceptions.JavascriptException: Message: javascript error: Cannot read properties of undefined (reading ‘style’) 粉丝群里面的一个小伙伴遇到问题跑来私信我,想用selenium调用js代码,但是发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记

    2024年02月04日
    浏览(50)
  • docker 启动 nacos Failed to bind properties under ‘server.tomcat.basedir‘ to java.io.File 解决

    配置文件中默认为 server.tomcat.basedir= 启动时出错,解决方案给该值赋予一个存在的路径 server.tomcat.basedir=/ 重新启动即可解决问题 来源docker 按住nacos启动Failed to bind properties under \\\'server.tomcat.basedir\\\' to java.io.File: · Issue #8960 · alibaba/nacos · GitHub

    2024年02月13日
    浏览(42)
  • Java IO流 flush()的作用和缓冲流

    哪些流是缓冲流 根据Java官方文档关于Buffered Streams的介绍,缓冲流有四种: BufferedInputStream:包装字节输入流 BufferedOutputStream:包装字节输出流 BufferedReader:包装字符输入流 BufferedWriter:包装字符输出流 这些流又被称为包装流/处理流,用于包装非缓冲的流 There are four buffere

    2024年02月04日
    浏览(32)
  • Flink使用log4j.properties不打印日志问题

    日志配置文件选择使用log4j.properties flink程序不打印日志。 问题原因         日志依赖包冲突 解决办法         将lib目录下的log4j2依赖移除,如下:         log4j-1.2-api-2.12.1.jar         log4j-api-2.12.1.jar         log4j-core-2.12.1.jar         log4j-slf4j-impl-2.12.

    2024年02月09日
    浏览(46)
  • 从零开始学习 Java:简单易懂的入门指南之IO序列化、打印流、压缩流(三十三)

    Java 提供了一种对象 序列化 的机制。用一个字节序列可以表示一个对象,该字节序列包含该 对象的数据 、 对象的类型 和 对象中存储的属性 等信息。字节序列写出到文件之后,相当于文件中 持久保存 了一个对象的信息。 反之,该字节序列还可以从文件中读取回来,重构对

    2024年02月08日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包