zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Android登入界面
    安卓第4周作业
    第13周作业
    5.28上机作业
    5.22作业
    数据返回值
    登录
    安卓
    安卓第四周
    安卓第四周
  • 原文地址:https://www.cnblogs.com/gzgBlog/p/13670054.html
Copyright © 2011-2022 走看看