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

news2024/12/24 19:27:28

打印流:

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

 

 代码演示如下:

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();
    }
}

 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!");
    }
}

 代码演示如下:

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

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

需求

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

分析

  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"));
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/661212.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python截取某段文字的方法

Python截取某段文字的方法 在处理文本数据时,截取某段文字是常见需求。Python作为一门优秀的脚本语言,提供了多种方法来完成这个任务。本篇文章将介绍Python截取某段文字的几种方便易用的方法。 方法一:使用切片 Python中的切片操作可以方…

JavaScript的一些编程题分享

将字符串abc-def-ghi转换为驼峰格式 这里我们的思路是利用字符串方法和正则表达式 const str abc-def-ghi;const camelCaseStr str.replace(/[-_][^-_]/g, match > match.charAt(1).toUpperCase());console.log(camelCaseStr); // abcDefGhi 这里使用了 replace 方法&a…

haproxy

haproxy haproxy一:常见的Web集群调度器1.软件2.硬件3.LVS ,Nginx ,Haproxy 的区别: 二:Haproxy应用分析1.HAProxy的主要特性有:2.HAProxy负载均衡策略非常多,常见的有如下8种: 三&a…

MySQL8.0数据库开窗函数

简介 数据库开窗函数是一种在SQL中使用的函数,它可以用来对结果集中的数据进行分组和排序,以便更好地分析和处理数据。开窗函数与聚合函数不同,它不会将多行数据聚合成一行,而是保留每一行数据,并对其进行分组和排序。…

Linux中/dev/random和/dev/urandom的作用

1./dev/random和/dev/urandom介绍 在Linux环境中,我们会用到/dev/random和/dev/urandom,今天为大家讲讲/dev/random和/dev/urandom的作用以及使用场景。 1.1./dev/random介绍 /dev/random是一个特殊的字符设备文件,用于生成“高质量”的随…

Python面向对象编程1-面向过程的简单纸牌游戏程序 项目1.1 定义纸牌的花色和点数

总项目目标:用面向过程思想设计一个简单的纸牌游戏程序,称为"Higher or Lower"(高还是低)。游戏中,玩家需要猜测接下来的一张牌是比当前牌高还是低。根据猜测的准确性,玩家可以得到或失去相应的积…

Unity UGUI1——基础组件概述

一、UGUI 介绍 ​ UGUI 是 Unity 引擎内自带的 UI 系统,官方称之为:Unity UI ​ 是目前 Unity 商业游戏开发中使用最广泛的 UI 系统开发解决方案 ​ 它是基于 Unity 游戏对象的 UI 系统,只能用来做游戏 UI 功能 ​ 不能用于开发 Unity 编…

【MarkDown】CSDN Markdown之Git图gitGraph详解

Git图 Git图是对不同分支上的Git提交和Git操作(命令)的图形化表示。 这种类型的图特别适合开发人员和DevOps团队分享他们的Git分支策略。例如,它可以更容易地可视化git流的工作方式。 Mermaid可以呈现Git图,但是只有v10.2.3 才支持。 代码…

kubernets 笔记

kubernets 笔记 kubernets 安装 1. 环境准备 硬件要求 内存:2GBCPU:2 核硬盘:30GB 本次环境说明 操作系统:CentOS 7.9内核版本:3.10.0-1160.76.1.el7.x86_64k8s-m:192.168.222.3k8s-s01:192.…

安装Apache、MySQL、PHP、论坛实操

文章目录 一、安装Apache1、准备阶段2、开始安装3、浏览器访问验证 二、部署MySQL三、部署php四、部署BBS论坛 一、安装Apache 1、准备阶段 (1)准备源码包 httpd-2.4.29.tar.gz apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz cd /opt tar xf apr-1.6.2.tar…

【Windows】创建Windows远程桌面快捷方式

【Windows】创建Windows远程桌面快捷方式 1、背景2、操作 1、背景 windows系统自带了远程连接工具,可以实现局域网内的远程控制,参考: 【Windows】局域网内远程桌面控制 https://blog.csdn.net/jn10010537/article/details/130926888 但是w…

【Leetcode -404.左子叶之和 -543.二叉树的直径】

Leetcode Leetcode -404.左子叶之和Leetcode -543.二叉树的直径 Leetcode -404.左子叶之和 题目:给定二叉树的根节点 root ,返回所有左叶子之和。 示例 1: 输入: root [3, 9, 20, null, null, 15, 7] 输出 : 24 解释 : 在这个二叉树中&…

vue三部曲

vue初入 简介 ​ vue生于2014年 Vue等框架与jQuery的区别 ​ jQuery是基于操作dom的库 ​ Vue框架是以数据驱动和组件化开发为核心 留坑、引包、实例化、插值表达式{{}} ​ vue第一个简单案例练习图。 引包 ​ 使用cnpm install vue2下载vue2(version下载指…

ansible的剧本

一、playbooks 概述以及实例操作 1、playbooks 的组成 playbooks 本身由以下各部分组成 (1)Tasks:任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 (2)Variables&#xff1…

数据挖掘工程师岗位的工作职责

数据挖掘工程师岗位的工作职责1 职责: 1.负责数据分析,数据挖掘相关的算法、应用的设计与开发; 2.负责公司产品各阶段数据的整理、分析、挖掘及提交数据报告,重点对车辆行为数据进行分析和挖掘,利用数据分析结论推动业务产品的优化; 3.对海量…

python---列表和元组(3)

列表元素的遍历 遍历往往搭配循环 for循环进行遍历 for循环搭配下标的形式 这个可以修改列表中的数值 上述两个代码的区别 通过下标的方式进行赋值才会修改自身 使用while循环遍历 元素的插入操作 使用append往列表末尾来新增元素 使用insert进行插入 列表的查找##…

利用AHB-Lite总线实现ARM Cortex-M0基础的SoC系统;如何设计一个SoC系统;AHB-Lite;ARM Cortex-M0;SoC;

利用AHB-Lite总线实现ARM Cortex-M0基础的SoC系统;如何设计一个SoC系统 一、SoC系统下的软硬件分工Hardware only 和System on Chip的区别例子1:计算时间差值例子2:想实现功能的切换例子3:LED显示 二、SoC系统1. AHB-Lite总线 与 …

chatgpt赋能python:Python如何隐藏输出

Python如何隐藏输出 如果你是一个Python程序员,你可能会遇到需要隐藏输出的情况。这可能是因为你的输出包含敏感信息,或者你只是想使你的输出更加整洁,避免不必要的干扰。在这篇文章中,我们将探讨一些方法来隐藏Python中的输出。…

微擎PHP文件goto解密源码工具

🎉 有需要的朋友记得关赞评,文章底部来交流!!! 🎉 ✨ 源码介绍 1、php 版本需要大于 7 2、需要解密的文件放到 decodeFile 下,解密至 complete 下 3、解密的可以是多个文件,不能放…

操作系统-I/O管理-I/O管理概述

目录 一、I/O设备的分类 1.1分类 1.1.1特性分类 1.1.2按传输速率分类 1.1.3按信息交换单位分类 二、I/O控制器 三、I/O控制方式 3.1程序直接控制方式 3.1中断驱动方式 3.3DMA方式 3.4通道控制方式 四、I/O软件层次结构 五、输入输出管理 5.1输入输出应用程序接口 …