详解打印流PrintStream&Java中格式化输出的几种方法

详解打印流PrintStream

java.io.PrintStream:打印流
PrintStream:为其他输出流添加了功能,使他们能够方便地打印各种数据值表示形式。
1.1 PrintStream特点:

  • 1.只负责数据的输出,不负责数据的读取
  • 2.与其他输出流不同,PrintStream永远不会抛出IOException
  • 3.特有的方法:print,println
    void print(任意类型的值)
    void println(任意类型的值并换行)

1.2 构造方法:

  • PrintStream(File file):输出的目的地是一个文件
  • PrintStream(OutputStream out):输出的目的地是一个字节输出流
  • PrintStream(String fileName):输出的目的地是一个文件路径

1.3 继承自父类的成员方法
PrintStream extends OutputStream

  • public void close() :关闭此输出流并释放与此流相关联的任何系统资源。
  • public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。
  • public void write(byte[] b ) :将b.length字节从指定的字节数组写入此输出流。
  • public void write(byte[] b,int off,int len)
    :从指定的字节数组写入len字节,从偏移量off开始输出到此输出流。
  • public abstract void write(int b) :将指定的字节输出流。

1.4 注意:

  • 如果使用继承自父类的write方法写数据,那么查看数据的时候会查询编码表 97–>a
  • 如果使用自己特有的方法print/println方法写数据,写的数据原样输出 97–>97
package com.IOAndProperties.PrintStream;

import java.io.FileNotFoundException;
import java.io.PrintStream;

	/*
    java.io.PrintStream:打印流
        PrintStream:为其他输出流添加了功能,使他们能够方便地打印各种数据值表示形式。
     PrintStream特点:
        1.只负责数据的输出,不负责数据的读取
        2.与其他输出流不同,PrintStream永远不会抛出IOException
        3.特有的方法:print,println
              void print(任意类型的值)
              void println(任意类型的值并换行)

     构造方法:
         PrintStream(File file):输出的目的地是一个文件
         PrintStream(OutputStream out):输出的目的地是一个字节输出流
         PrintStream(String fileName):输出的目的地是一个文件路径

     PrintStream extends OutputStream
     继承自父类的成员方法
         -public void close() :关闭此输出流并释放与此流相关联的任何系统资源。
         -public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。
         -public void write(byte[] b ) :将b.length字节从指定的字节数组写入此输出流。
         -public void write(byte[] b,int off,int len) :从指定的字节数组写入len字节,从偏移量off开始输出到此输出流。
         -public abstract void write(int b) :将指定的字节输出流。

      注意:
           如果使用继承自父类的write方法写数据,那么查看数据的时候会查询编码表 97-->a
           如果使用自己特有的方法print/println方法写数据,写的数据原样输出   97-->97
 */
public class Demo01PrintStream {
    
    
    public static void main(String[] args) throws FileNotFoundException {
    
    
//        System.out.println("HelloWorld");

        //创建打印流PrintStream对象,构造方法中绑定要输出的目的地
        PrintStream ps = new PrintStream("基础语法\\print.txt");
        //  如果使用继承自父类的write方法写数据,那么查看数据的时候会查询编码表 97-->a
        ps.write(97);   //a

        ps.println(97);
        ps.println(8.7);
        ps.println("adc");
        ps.println(true);
        ps.println('c');

        //释放资源
        ps.close();
    }
}

1.5 可以改变输出语句目的地(打印流的流向)

  • 输出语句,默认在控制台输出
  • 使用 System.setOut方法改变输出语句的目的地改为参数传递的打印流的目的地
  • static void setOut(PrintStream out)
    重新分配“标准”输出流。
package com.IOAndProperties.PrintStream;

import java.io.FileNotFoundException;
import java.io.PrintStream;

/*
   可以改变输出语句目的地(打印流的流向)
   输出语句,默认在控制台输出
   使用 System.setOut方法改变输出语句的目的地改为参数传递的打印流的目的地
        static void setOut(PrintStream out)
        重新分配“标准”输出流。
 */
public class Demo02PrintStream {
    
    
    public static void main(String[] args) throws FileNotFoundException {
    
    
        System.out.println("我是在控制台输出");

        PrintStream ps = new PrintStream("基础语法\\目的地是打印流.txt");
        System.setOut(ps);  //把输出语句的目的地改变为打印流的目的地
        System.out.println("我在打印流的目的地中输出");

        ps.close();
    }
}

1.6 输出结果
在这里插入图片描述

Java中实现格式化输出的几种方式:

1System.out.printf();

类似于c语言的printf方法。如:
int x = 55;
System.out.format(“x = %5x”, x);
输出结果为:x = 37

2System.out.format()

int x = 55;
System.out.printf(“x = %5c”, x);
输出结果为:x = 7

3String.format()

String提供的静态方法。
int x = 55;
System.out.println(String.format(“x = %5x”, x));
输出结果为:x = 37

4Formatter

int x = 55;
Formatter format = new Formatter(System.out);
format.format(“x = %5x”, x);
输出结果为:x = 37

猜你喜欢

转载自blog.csdn.net/qq_43842093/article/details/130093242
今日推荐