JAVA——打印流

news2024/9/20 1:44:50

目录

一、printStream

二、printWriter

三、打印流的应用——输出重定向

输出语句重定向的意义


 

一、printStream

1.  作用: 打印流可以实现更方便、更高效的打印数据出去

 跟着黑马实现一下:printStream 的底层实现效率更高,println输什么就打印什么,效率高;write 可以写字节/字节数组出去

指定编码是 Charset.forName("指定字符集编码")

public static void main(String[] args) {
        try (
                PrintStream ps = new PrintStream("E:\\developcode\\javacode\\javabase\\src\\com\\IO\\printliu\\test1.txt");
        ){
            ps.println('a');
            ps.println(97);
            ps.println("我出生在中国yyds");
            ps.println(true);
            ps.println(100.1);

            byte[] buffer = {'a','b','c'};
            ps.write(buffer);
            ps.write('y');
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

二、printWriter

看构造器,比printStream() 多了一个Writer,其他的差不多

 public static void main(String[] args) {
        try (
                //PrintWriter ps = new PrintWriter("文件路径");
                //如果要追加内容,printStream 是高级流,不可以后面直接加true,那么要变成低级流
                PrintWriter ps = new PrintWriter(new FileOutputStream("文件路径",true));
        ){
            ps.println('a');
            ps.println(97);
            ps.println("我出生在中国yyds");
            ps.println(true);
            ps.println(100.1);

             ps.write('你');
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

那么,看完了printStream和printWriter, 他们有什么区别勒?

1. 打印数据功能上一模一样,都是使用方便,性能高效

2. printStream 继承自字节输出流OutputStream,所以支持写出字节

3. printWriter 继承自字符输出流Writer,所以支持写出字符

三、打印流的应用——输出重定向

输出重定向指的是将原本应该输出到标准输出设备(如控制台或屏幕)的信息,改为输出到指定的文件或其他输出流中。这种机制在日志记录错误信息捕获数据持久化等场景中非常有用。

输出语句重定向的意义
  1. 日志记录:在应用程序运行时,将关键信息(如警告、错误日志)重定向到文件中,便于事后分析和调试。
  2. 错误信息捕获:当程序出现异常时,将错误信息重定向到特定文件,可以避免在控制台中丢失重要信息,并方便集中处理。
  3. 数据持久化:对于需要长期保存的数据,通过输出重定向可以方便地将其保存到文件中,实现数据的持久化存储。
public static void main(String[] args) {
        System.out.println("君生我未生");
        System.out.println("我生君已老");
        try (
                PrintStream ps = new PrintStream("文件地址");
        ){
            //把系统默认的打印流对象改成自己设置的打印流
            System.setOut(ps);
            System.out.println("君生我未生");
            System.out.println("我生君已老");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

这个就实现了打印到目标文件里面

System.setOut( ); 方法确实 要求参数 是一个 PrintStream 类型的对象。这是因为 System.out 本身就是一个 PrintStream 类型的静态字段,用于表示标准输出流(通常是控制台)。通过调用 System.setOut(PrintStream out) 方法,你可以将这个标准输出流重定向到任何 PrintStream 对象,这样原本应该输出到控制台的信息就会被发送到新的输出流中。


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

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

相关文章

关于实时数仓的几点技术分享

一、实时数仓建设背景 业务需求的变化:随着互联网和移动互联网的快速发展,企业的业务需求变得越来越复杂和多样化,对数据处理的速度和质量要求也越来越高。传统的T1数据处理模式已经无法满足企业的需求,实时数据处理成为了一种必…

floodfill+DFS(2)

文章目录 太平洋大西洋流水问题扫雷游戏迷路的机器人 太平洋大西洋流水问题 class Solution { public:vector<vector<int>> res;int m 0, n 0;vector<vector<int>> pacificAtlantic(vector<vector<int>>& heights) {m heights.size…

35.贪心算法2

1.按身高排序&#xff08;easy&#xff09; 2418. 按身高排序 - 力扣&#xff08;LeetCode&#xff09; 题目解析 算法原理 代码 class Solution {public String[] sortPeople(String[] names, int[] heights) {// 1. 创建⼀个下标数组int n names.length;Integer[] index …

tair性能挑战赛攻略心得-Zzzzz

关联比赛: 第二届数据库大赛—Tair性能挑战 赛题分析 赛题要求实现一个基于persistent memory&#xff08;AEP&#xff09;的持久化键值存储系统&#xff0c;并要求从数据正确性和系统读写性能两个方面来考虑系统设计。 正确性 数据正确性包括数据写入的持久性和原子性两个…

计算机三级网络技术总结(五)

HTTP端口号为80 三平台一出口&#xff1a;网络平台、业务平台、管理平台和城市宽带出口IEEE802.16最高传输速率为134Mbps链路状态数据库中保存的是全网的拓扑结构图&#xff0c;而非全网完整的路由表在无线局域网中&#xff0c;客户端设备用来访问接入点&#xff08;AP&#xf…

MySQL 中的索引覆盖扫描:加速查询的秘密武器

在 MySQL 数据库的使用中&#xff0c;索引是提高查询性能的重要工具。而索引覆盖扫描&#xff08;Index Covering Scan&#xff09;更是一种能显著提升查询效率的技术。本篇文章我们就来深入了解一下 MySQL 中的索引覆盖扫描是什么。 一、什么是索引覆盖扫描 在 MySQL 中&…

将有序数组——>二叉搜索树

给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵平衡二叉搜索树。 示例 1&#xff1a; 输入&#xff1a;nums [-10,-3,0,5,9] 输出&#xff1a;[0,-3,9,-10,null,5] 解释&#xff1a;[0,-10,5,null,-3,null,9] 也将被视为正确答案…

Python编码系列—Python桥接模式:连接抽象与实现的桥梁

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

【C语言二级考试】循环结构设计

C语言二级考试——循环结构程序设计 五.循环结构程序设计 1.for循环结构 2.while和do-while循环结构 3.continue语句和break语句 4.循环的嵌套 知识点参考【C语言】循环-CSDN博客 文章目录 1.for循环2.while和do-while循环结构3.continue语句和break语句4.循环的嵌套 1.for循环…

ORA-28032 Your password has expired and the database is set to read only

做个记录。 non-cdb 处于只读状态&#xff0c;CDB创建到noncdb的dblink后产生的报错&#xff0c;dblink可以成功创建&#xff0c;但无法连接到non-cdb。 解决&#xff1a;一开始以为是cdb的密码不正确&#xff0c;mos上找到问题&#xff0c;non-cdb的密码过期了&#xff0c;并且…

m4a怎么转换mp3格式?给你推荐八种m4a转MP3的转换方法

m4a怎么转换mp3格式&#xff1f;在数字音乐的世界中&#xff0c;音频格式的多样性常常让人感到困惑。m4a作为一种流行的音频格式&#xff0c;以其优良的音质和较小的文件体积受到许多用户的青睐&#xff0c;尤其是在苹果设备上。然而&#xff0c;尽管m4a文件在现代设备中表现良…

软件设计画图,流程图、甘特图、时间轴图、系统架构图、网络拓扑图、E-R图、思维导图

目录 一、流程图 二、甘特图 三、时间轴图 四、系统架构图 五、网络拓扑图 六、E-R图 七、思维导图 一、流程图 是一种用符号表示算法、工作流或流程的图形。用不同的图形表示不同含义&#xff0c;如椭圆表示开始和结束、菱形表示判断等。 画图工具WPS office 应用市场…

ShouldSniffAttr在自动化测试中具体是如何应用?

在自动化测试中&#xff0c;ShouldSniffAttr 这样的函数名通常暗示它是一个用于断言&#xff08;assertions&#xff09;的工具&#xff0c;用于检查某个元素或属性是否符合预期的条件。 虽然这不是一个标准的函数名&#xff0c;但我们可以根据命名推测其用途。 例如&#xf…

python 绘制 y=x^3 图像

python 绘制 yx^3 图像 import numpy as np -----------------激活numpy import matplotlib.pyplot as plt -------------------激活matplotlib xnp.arange(-10,10,0.01) ---------------------设置x的取值范围&#xff0c;设置坐标值 yx*x*x ------…

前端常用的主流框架有哪些

前端开发中&#xff0c;有几个主流框架非常受欢迎&#xff0c;它们为开发者提供了丰富的功能和高效的开发体验。以下是一些当前最常用的前端主流框架&#xff1a; React&#xff1a; React 是由 Facebook 开发的一个用于构建用户界面的 JavaScript 库。它鼓励使用组件化的开发模…

Elasticsearch集群的运维与管理

【1】安装启动ES 集群 &#xff08;1.1&#xff09;集群架构规划 OS  ES versionIpnode.nameRolecluster.namees basedirCentOS Linux release 7.8.2003 (Core)elasticsearch-7.14.1 192.168.175.132:9200 cluster&#xff1a;192.168.175.132:9301 node_1 node.mastertrue …

5.C_数据结构_树

概述 树的逻辑结构&#xff1a; 树中任何节点都可以有0个或多个直接后继节点&#xff0c;但最多只有一个直接前驱节点。根节点没有直接前驱节点&#xff0c;叶节点没有直接后继节点。 相关名词&#xff1a; 空树&#xff1a;树中没有节点节点的度数&#xff1a;一个节点的…

【2025】基于微信小程序的人工智能课程学习平台的设计与实现(源码+文档+解答)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

优化算法(四)—蚁群算法(附MATLAB程序)

蚁群算法&#xff08;Ant Colony Optimization, ACO&#xff09;是一种模拟蚂蚁觅食行为的优化算法&#xff0c;由Marco Dorigo于1990年提出。它利用了蚂蚁在寻找食物的过程中通过释放信息素来相互影响的机制&#xff0c;以找到最优解或接近最优解。蚁群算法特别适用于解决组合…

workbench的使用

connection name 是可以任意取的 Hostname 是数据库的地址&#xff0c;本地的话就默认是127.0.0.1 port是端口 选择store in value来存储密码 点击测试连接test connection 单击就可以登录&#xff0c;如果需要编辑的话&#xff0c;右键选择edit connection 可以选择删除账…