zoukankan      html  css  js  c++  java
  • java学习日记 System类对IO的支持

    1、System.out

    使用OutputStream向屏幕输出。

    import java.io.IOException;
    import java.io.OutputStream;
    
    public class SystemoutDemo1 {
        public static void main(String[] args) {
            OutputStream out = System.out;    //此时的输出流是向屏幕上输出
            try {
                out.write("hello world!!!".getBytes());
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    OutputStream的哪个子类为其实例化,就具备了向哪里输出的能力。如果使用了FileOutputStream则表示向文件输出,如果使用了System.out则表示向显示器输出,这里完全显示出了Java的多态性的好处,根据子类的不同完成的功能也不同。

    2、System.err

    System.err表示的是错误信息输出,如果程序出现错误,则可以直接使用System.err进行输出。

    public class SystemerrDemo1 {
        public static void main(String[] args) {
            String str = "hello";
            try {
                System.out.println(Integer.parseInt(str));
            }catch (Exception e){
                System.err.println(e);
            }
        }
    }

    3、System.in

    import java.io.InputStream;
    
    public class SysteminDemo {
        public static void main(String[] args) throws Exception {
            InputStream input = System.in;
            StringBuffer buf = new StringBuffer();
            System.out.println("请输入内容:");
            int temp =0 ;
            while ((temp=input.read())!=-1){
                char c = (char) temp;
                if (c=='
    '){
                    break;
                }
                buf.append(c);
            }
            System.out.println("输入的内容为:"+buf);
            input.close();
        }
    }

    如果输入中文会出现乱码。

    4、BufferedReader类

    键盘输入的标准格式:

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class BufferReaderDemo1 {
        public static void main(String[] args) {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String str = null;
            System.out.println("请输入内容:");
            try {
                str=br.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println("输入的内容为:"+str);
        }
    }

    可以解决乱码问题。

    5、Scanner类

    import java.util.Scanner;
    
    public class ScannerDemo1 {
        public static void main(String[] args) {
            boolean flag = true;
            System.out.println("请输入生日:");
            while (flag){
                Scanner scanner = new Scanner(System.in);//从键盘输入数据
                if (scanner.hasNext("\d{4}-\d{2}-\d{2}")){
                    String bir = scanner.next("\d{4}-\d{2}-\d{2}");
                    System.out.println("输入内容:"+bir);
                    flag=false;
                }else {
                    System.out.println("输入格式错误");
                }
            }
        }
    }

    scanner.userDelimiter  修改输入数据的分隔符

     Scanner 输出文档的内容:

    public class ScannerDemo2 {
        public static void main(String[] args) {
            File file = new File("d:"+File.separator+"demo"+File.separator+"test.txt");
            Scanner scanner = null;
            try {
                scanner = new Scanner(file);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            StringBuffer sbf = new StringBuffer();
            while (scanner.hasNext()){
                sbf.append(scanner.next()).append("
    ");
            }
            System.out.println(sbf);
        }
    }

    6、对象序列化

    java中共有两个标识接口:克隆(Cloneable)和对象序列化(Serializable)。

  • 相关阅读:
    2-反向调试
    1-断点调试
    gdb基础用法
    protobuf学习手册(上)
    1024 科学计数法 (20 分)
    1023 组个最小数 (20 分)
    1018 锤子剪刀布 (20 分)
    1015 德才论 (25 分)
    1020 月饼 (25 分)
    1019 数字黑洞 (20 分)
  • 原文地址:https://www.cnblogs.com/cathycheng/p/13224507.html
Copyright © 2011-2022 走看看