zoukankan      html  css  js  c++  java
  • java学习笔记 打印流Print流

    在io包里,打印流是输出最方便的类

    主要包含字节打印流PrintStream,字符打印流PrintWriter

    PrintStream是OutputStream的子类,把一个输出流的实例传递到打印流之后,可以更加方便地输出内容,相当于打印流把输出流重新包装一下

    PrintStream类的print()方法被重载很多次print(int i)、print(boolean b)、print(char c)

    PrintStream操作实例

    import java.io.*;
    
    public class Test {
        public static void main(String[] args) {
            //PrintStream流输出
            try{
                File f1 = new File("e:\java\aaa.txt");
                File f2 = new File("e:\java\bbb.txt");
                PrintStream ps1 = new PrintStream(f1);
                PrintStream ps2 = new PrintStream(f2);
                ps1.println("24");
                ps1.print("1 + 1 =" + 2);//更加方便的输出内容
                ps2.print(24);//此方法被重载很多次
                ps1.close();
                ps2.close();
            }catch(IOException e) {
                e.printStackTrace();    
            }
            
            //PrintStream流printf方法格式化输出
            try{
                String name = "宝宝";
                int age = 24;
                float high = 1.64f;
                char sex = 'M';
                PrintStream ps3 = new PrintStream(new FileOutputStream(new File("e:\java\ccc.txt")));
                ps3.printf("姓名: %s; 年龄: %d; 身高 %f; 性别: %c",name,age,high,sex);
            }catch(IOException e){
                e.printStackTrace();    
            }
        }    
    }

    r1

    System类对打印流的支持

    System类的三个常量:

       public static final PrintStream out

       public static final PrintStream err

       public static final InputStream in

    system.out是PrintStream的对象

    import java.io.*;
    
    public class Test {
        public static void main(String[] args) {
            //使用OutputStream对屏幕上进行输出
            try{
                OutputStream ops = System.out;
                ops.write("Hello Word!".getBytes());
                ops.close();
            }catch(IOException e) {
                e.printStackTrace();    
            }
        }    
    }

    r1

    import java.io.*;
    
    public class Test {
        public static void main(String[] args) {
            //读取键盘上的输入内容
            try{
                InputStream br = System.in;
                System.out.print("请输入内容:");
                byte b[] = new byte[1024];
                int len = br.read(b);
                System.out.println("键盘输入的是: "+ new String(b,0,len));
                br.close();
            }catch(IOException e) {
                e.printStackTrace();    
            }
        }    
    }

    r2

    定向输入输出

    通过System类可以改变out err in的位置

    public static void setOut(PrintStream out)

    public static void setIn(PrintStream in)

    public static void setErr(PrintStream err)

    setOut操作

    import java.io.*;
    
    public class Test {
        public static void main(String[] args) {
            //读取键盘上的输入内容
            try{
                System.setOut(new PrintStream("e:\java\aaa.txt"));
                System.out.println("宝宝");
            }catch(IOException e) {
                e.printStackTrace();    
            }
        }    
    }
    
    /*
    1.此程序运行后,不会再屏幕上显示,而是储存到aaa.txt中
    */

    r1

    import java.io.*;
    
    public class Test {
        public static void main(String[] args)throws Exception {
            //测试写入char型和int型
            PrintStream ps1 = null;
            ps1 = new PrintStream("e:\java\aaa.txt");
            char c;
            int len = 0;
            for(c = 0;c <= 60000;c++) {
                ps1.print(c);//print(char c)Prints a character.在文件中写入的是字符。大小82.9kb
                len++;
                if (len >= 100) {
                    len = 0;
                    ps1.println();    
                }    
            }
            
            FileWriter fw = null;
            fw = new FileWriter("e:\java\bbb.txt");
            int i;
            len = 0;
            for(i = 0;i<= 60000;i++) {
                fw.write(i);//write(int c)Writes a single character.在文件中写入的是字符,和aaa.txt一样。大小82.3kb
                len++;
                if(len >= 100) {
                    len = 0;
                    fw.write(" ");    
                }    
            }
            
            PrintStream ps2 = null;
            ps2 = new PrintStream("e:\java\ccc.txt");
            int j;
            len = 0;
            for(j = 0;j <= 60000;j++) {
                ps2.print(j);//print(int i)Prints an integer.写入的是整形。大小283kb
                len++;
                if(len >= 100) {
                    len = 0;
                    ps2.println();    
                }
            }
            
            ps1.close();
            ps2.close();
            fw.close();
        }    
    }
    View Code
    import java.io.*;
    
    public class Test {
        public static void main(String[] args)throws Exception {
            //按行读一个文件,输出到屏幕
            BufferedReader br = new BufferedReader(new FileReader("e:\java\pkg1\Test.java"));
            PrintStream ps = System.out;
            String str = br.readLine();
            while((str = br.readLine()) != null) {
                ps.println(str);        
            }
            br.close();
            ps.close();
        }    
    }
    View Code
    import java.io.*;
    import java.util.*;
    
    public class Test {
        public static void main(String[] args)throws Exception {
            //存储键盘输入内容,并加上日期,相当于记录日志。
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            FileWriter fw = new FileWriter("e:\java\a.txt",true);//可以追加输入
            String str = null;
            while((str = br.readLine()) != null) {//阻塞式方法,从标准输入System.in键盘输入。只有当我们敲回车后这局话才返回,才会执行。
                if(str.equalsIgnoreCase("exit")) {
                    //System.exit;    
                    break;
                }
                fw.write(str + "
    " );
                fw.flush();
                    
            }
            fw.write("-----------------" + new Date() + "----------------" +"
    ");
            br.close();
            fw.close();
        }    
    }
    View Code
  • 相关阅读:
    IIS 6.0下安装SSL数字证书实现https访问
    使用SQL2005自带扩展函数对字符串进行MD5加密(转)
    Posix多线程编程学习笔记(三)—信号灯(1)--转自湖光倒影
    利用pthread_mutex对多进程上锁
    ObjectiveC中的锁
    Linux内存管理之mmap详解
    cocoa应用程序生命周期
    多线程编程互斥锁
    [New Book]Flex第一步 国内第一本关于Flex的书籍
    ASP.NET中实现二级或多级域名(修改UrlRewrite)
  • 原文地址:https://www.cnblogs.com/yhwsy/p/5788267.html
Copyright © 2011-2022 走看看