• 112.Java打印流


    打印流

    PrintStream可以接受文件和其他字节输出流,所以打印流是对普通字节输出流的增强,其中定义了很多的重载的print()和println(),方便输出各种类型的数据。

    PrintStream

    PrintWriter

    1,打印流。

    PrintStream:

    是一个字节打印流,System.out对应的类型就是PrintStream。

    它的构造函数可以接收三种数据类型的值。

    1,字符串路径。

    2,File对象。

    3,OutputStream。

    public static void main(String[] args) throws IOException {
            PrintStream ps = System.out;
    
            // 普通write方法需要调用flush或者close方法才会在控制台显示
            // ps.write(100);
            // ps.close();
    
            // 不换行打印
            ps.print(100);
            ps.print('a');
            ps.print(100.5);
            ps.print("世界");
            ps.print(new Object());
            System.out.println("--------------");
            // 换行
            ps.println(100);
            ps.println('a');
            ps.println(100.5);
            ps.println("世界");
            ps.println(new Object());
    
            // 重定向打印流
            PrintStream ps2 = new PrintStream(new File("c:\a.txt"));
            System.setOut(ps2);
            // 换行
            ps2.println(100);
            ps2.println('a');
            ps2.println(100.5);
            ps2.println("世界");
            ps2.println(new Object());
    
            // printf(); 格式化
            ps2.printf("%d,%f,%c,%s", 100, 3.14, '中', "世界你好!!!");
            ps2.printf("%4s和%8s 打价格战", "京东", "苏宁");
    
            
        }    }

    注意: 打印流的三种方法

          void print(数据类型 变量)

       println(数据类型 变量)

       printf(String format, Object... args)

          可以自定数据格式

       print 和println方法的区别在于,一个换行一个不换行

       print 方法和write方法的却别在于,print提供自动刷新.

       普通的write方法需要调用flush或者close方法才可以看到数据.

    JDK1.5之后Java对PrintStream进行了扩展,增加了格式化输出方式,可以使用printf()重载方法直接格式化输出。但是在格式化输出的时候需要指定输出的数据类型格式。

     

    PrintWriter

    是一个字符打印流。构造函数可以接收四种类型的值。

    1,字符串路径。

    2,File对象。

    对于1,2类型的数据,还可以指定编码表。也就是字符集。

    3,OutputStream

    4,Writer

    对于3,4类型的数据,可以指定自动刷新。

    注意:该自动刷新值为true时,只有三个方法可以用:println,printf,format.

    如果想要既有自动刷新,又可执行编码。如何完成流对象的包装?

    PrintWrter pw =

    new PrintWriter(new OutputSteamWriter(new FileOutputStream("a.txt"),"utf-8"),true);

    如果想要提高效率。还要使用打印方法。

    PrintWrter pw =

    newPrintWriter(new  BufferdWriter(new OutputSteamWriter(

    newFileOutputStream("a.txt"),"utf-8")),true);

    public static void testPrintWriter() throws Exception {
            PrintWriter pw = new PrintWriter("c:/b.txt", "gbk");
    
            // pw.append("xxx");
            // pw.println(55);
            // pw.println('c');
            // pw.printf("%.1s与%4s打价格战, %c", "京东","苏宁", 'a');
    
            pw.close();
    
        }

    Scanner

    public static void testScanner() throws Exception {
            // Scanner scanner = new Scanner(new File("c:/test.txt"));
            Scanner scanner = new Scanner(System.in);
    
            System.out.println(scanner.nextInt());
            System.out.println(scanner.nextBoolean());
    
            scanner.close();
        }
    author@nohert
  • 相关阅读:
    Adding Swap Files
    Creating a Swap Partition
    linux删除或隐藏命令历史记录history
    Unix系统解压tar包时出现@LongLink错误
    【白话经典算法系列之十七】 数组中只出现一次的数 其他三次
    MapReduce原理及其主要实现平台分析
    二叉搜索树转换为有序双向链表
    实现O(1)获取最大最小值的栈----java
    对线性回归,logistic回归和一般回归的认识
    SMO优化算法(Sequential minimal optimization)
  • 原文地址:https://www.cnblogs.com/gzgBlog/p/13670054.html
Copyright © 2020-2023  润新知