首页 > 编程语言 >Java拾贝第十一天——IO流之打印流

Java拾贝第十一天——IO流之打印流

时间:2023-10-27 12:55:05浏览次数:39  
标签:第十一天 Java 拾贝 stream text PrintStream File true public

Java拾贝不建议作为0基础学习,都是本人想到什么写什么

在整个IO包中,打印流是输出信息最方便的类。

主要包括字节打印流(PrintStream)字符打印流(PrintWriter)

打印流没有输入流,所以没有输入输出这个说法,都是输出

PrintStream

字节打印属于OutputStream的子类,PrintStream的构造方法:

public PrintStream(OutputStream out)//根据多态性 可以传入OutputStream的子类
public PrintStream(OutputStream out, boolean autoFlush) //这个T是自动刷新缓冲区
public PrintStream(File file) throws FileNotFoundException//直接传入File对象

想要追加内容须使用public FileOutputStream(String name, boolean append)有参构造

PrintStream常用方法如下:

方法 类型 描述
public void print(Object obj) 普通方法 该方法被重载多次,输出任意数据
public void println(Object x) 普通方法 该方法被重载多次,输出任意数据后换行
public PrintStream printf(Locale l, String format, Object ... args) 普通方法 根据传入的格式,进行格式化输出

print(Object obj)

输出任意数据。该方法被重载了很多次,如下图:
image

D:\IOtest\text.txt内:

//空

栗子:

    public static void main(String[] args) {
        File file = new File("D:" + File.separator + "IOtest" + File.separator + "text.txt");
        try {
            PrintStream stream = new PrintStream(file);
            stream.print("hello\r\nworld!");//要手动换行
            stream.print(12.3);
            stream.print(true);

            stream.flush();//第二个有参构造填T,可以自动刷新缓冲区
            stream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

程序运行后,D:\IOtest\text.txt内:

hello
world!12.3true

println(Object x)

输出任意数据后换行。该方法被重载了很多次,如下图:
image
D:\IOtest\text.txt内:

hello
world!12.3true

栗子:

    public static void main(String[] args) {
        File file = new File("D:" + File.separator + "IOtest" + File.separator + "text.txt");
        try {
            PrintStream stream = new PrintStream(new FileOutputStream(file, true), true);
//想要追加内容须使用public FileOutputStream(String name, boolean append)有参构造
//这里第二个T是自动刷新缓冲区
            stream.println();//只输出换行符
            stream.println("撒旦静安寺点击");
            stream.println("1111111111.99");
            stream.println(false);

            stream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

程序运行后,D:\IOtest\text.txt内:

hello
world!12.3true
撒旦静安寺点击
1111111111.99
false

printf(Locale l, String format, Object ... args)

根据传入的格式进行格式化输出。

格式化表如下:

字符 描述
%s 字符串
%d 整数
%f 小数
%c 单字符

D:\IOtest\text.txt内:

hello
world!12.3true
撒旦静安寺点击
1111111111.99
false

栗子:

    public static void main(String[] args) {
        String name="法外狂徒-张三";
        int age=26;
        double money=999.99;
        char sex='M';
        File file = new File("D:" + File.separator + "IOtest" + File.separator + "text.txt");
        try {
            PrintStream stream = new PrintStream(new FileOutputStream(file, true), true);
            stream.println();//只输出换行符

            stream.printf("外号:%s +年龄:%d +财产:%f +性别:%c",name,age,money,sex);

            stream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

程序运行后,D:\IOtest\text.txt内:

hello
world!12.3true
撒旦静安寺点击
1111111111.99
false

外号:法外狂徒-张三 +年龄:26 +财产:999.990000 +性别:M
//很多0是浮点数精确度问题。

也可以全部用字符串接收
栗子:

    public static void main(String[] args) {
        String name="法外狂徒-张三";
        int age=26;
        double money=999.99;
        char sex='M';
        File file = new File("D:" + File.separator + "IOtest" + File.separator + "text.txt");
        try {
            PrintStream stream = new PrintStream(new FileOutputStream(file, true), true);
            stream.println();//只输出换行符

            stream.printf("外号:%s +年龄:%s +财产:%s +性别:%s",name,age,money,sex);

            stream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

程序运行后,D:\IOtest\text.txt内:

hello
world!12.3true
撒旦静安寺点击
1111111111.99
false

外号:法外狂徒-张三 +年龄:26 +财产:999.990000 +性别:M
外号:法外狂徒-张三 +年龄:26 +财产:999.99 +性别:M

字符打印流

字符打印流属于Writer的子类,PrintWriter的构造方法:

public PrintWriter (Writer out)//想要追加内容须调用FileWriter的有参构造
public PrintWriter(Writer out,boolean autoFlush)//一样的 还是自动刷新缓冲区
public PrintWriter(OutputStream out)//还可以接收字节流

想要追加内容须使用可以使用FileOutputStream或FileWriter的有参构造,根据构造方法这两种类型都能接收

PrintWriter常用方法如下:

方法 类型 描述
public void write(int c) 普通方法 该方法被重载多次,输出任意字符
public void print(Object obj) 普通方法 该方法被重载多次,输出任意数据
public void println(Object x) 普通方法 该方法被重载多次,输出任意数据后换行
public PrintWriter printf(String format, Object ... args) 普通方法 根据传入的格式,进行格式化输出

栗子就不举了和字节打印流大差不差的。

标签:第十一天,Java,拾贝,stream,text,PrintStream,File,true,public
From: https://www.cnblogs.com/Ocraft/p/17792082.html

相关文章

  • Java中logback的学习
    转:https://blog.csdn.net/lijiafa/article/details/109465399Logback常用配置介绍LOGBack简介官方手册:https://logback.qos.ch/manual/introduction.html介绍作者CekiGülcü在Java日志领域世界知名。他创造了Log4J,这个最早的Java日志框架即便在JRE内置日志功能的竞争下仍然......
  • JAVA SWING之JFrame和JPanel布局
    初学JAVA的时候学习过SWING,每次写程序就直接复制Jframe和Jpanel设置,再调一下大小(不知道有没有人跟我一样),到现在也不清楚它们有什么关系,才回顾学习。Swing虽然是很老的技术了,但也有很多工具是Swing写的例如JetBrains系列,最常用的IDEA。开发一下小工具还是不错的。掌握整体布局后,再......
  • 在JavaScript中创建多行字符串
    内容来自DOChttps://q.houxu6.top/?s=在JavaScript中创建多行字符串在JavaScript中,等效的代码如下:consttext=`ThisIsAMultilineString`;更新:ECMAScript6(ES6)引入了一种新的字面量类型,即模板字面量。它们具有许多功能,包括变量插值等等,但最重要的是对于这个问题,它......
  • 一步步带你剖析Java中的Reader类
     本文分享自华为云社区《深入理解Java中的Reader类:一步步剖析》,作者:bug菌。前言  在Java开发过程中,我们经常需要读取文件中的数据,而数据的读取需要一个合适的类进行处理。Java的IO包提供了许多类用于数据的读取和写入,其中Reader便是其中之一。本文将对Java中的Reader进行详细介......
  • Mac brew安装Java8 && Mac配置多个Java版本
    安装Java8 1.打开终端,输入以下命令安装brew: `/usr/bin/ruby-e"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)"` 2.安装Java8: `brewtapcaskroom/versions` `brewcaskinstalljava8` 3.验证Java8是否安装成功: `j......
  • 高效技巧揭秘:Java轻松批量插入或删除Excel行列操作
    摘要:本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言在职场生活中,对Excel工作表的行和列进行操作是非常普遍的需求。一般情况下在Excel中,可以通过右键菜单插入或者删除行与列。不过在软件开发......
  • java数组 去重字符串去空格
    packagegta.custom.action.typeForm;importjava.util.ArrayList;publicclassTestmain{publicstaticvoidmain(Stringargs[]){String[]str={"2","2","3","1","4","4"};/......
  • JAVA中char类型加减乘除运算表达式返回类型
    我们都知道java中,如果char类型和int类型做加减法,那么char类型会被精度提升至int类型然后参与运算,返回的也是int类型的数据。那么如果表达式中参与运算的均为char类型,那么表达式返回的类型是什么呢?'A'-'a'经过简单测试,是int类型。charc='w';sb.append('A'+c-'a');......
  • Java基础 多线程
    进程:进程是程序的基本执行实体(简单理解就是,一个软件运行之后,它就是一个进程)线程:线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。简单说,线程就是应用软件中互相独立的、又可以同时运行的功能。如果这样的功能比较多,就形成了多线程 ......
  • 学习Java的第一天 Markdown 语法
    Markdown学习标题:一级标题#+标题名字​二级标题##+.....以此类推二级标题三级标题字体Hello,World!粗体字体前后两个**Hello,World!斜体字体前面一个*Hello,World!又粗又斜字体前后三个***Hello,World!删除线......