zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然JAVAIO操作学习笔记:IO操作实例、Scanner、数据操作流与合并流

    import java.io.* ;
    public class ExecDemo01{
        public static void main(String args[]) throws Exception{
            int i = 0 ;
            int j = 0 ;
            BufferedReader buf = null ;        // 接收键盘的输入数据
            buf = new BufferedReader(new InputStreamReader(System.in)) ;
            String str = null ;    // 接收数据
            System.out.print("请输入第一个数字:") ;
            str = buf.readLine() ;    // 接收数据
            i = Integer.parseInt(str) ;    // 将字符串变为整数
            System.out.print("请输入第二个数字:") ;
            str = buf.readLine() ;    // 接收数据
            j = Integer.parseInt(str) ;    // 将字
            System.out.println(i + " + " + j + " = " + (i + j)) ;
        }
    };
    import java.io.* ;
    public class ExecDemo02{
        public static void main(String args[]) throws Exception{
            int i = 0 ;
            int j = 0 ;
            InputData input = new InputData() ;
            i = input.getInt("请输入第一个数字:","输入的数据必须是数字,请重新输入!") ;
            j = input.getInt("请输入第二个数字:","输入的数据必须是数字,请重新输入!") ;
            System.out.println(i + " + " + j + " = " + (i + j)) ;
        }
    };
    import java.io.* ;
    public class ExecDemo03{
        public static void main(String args[]) throws Exception{
            new Menu() ;
        }
    };
    import java.io.* ;
    import java.util.* ;
    import java.text.* ;
    public class InputData{
        private BufferedReader buf = null ;
        public InputData(){// 只要输入数据就要使用此语句
            this.buf = new BufferedReader(new InputStreamReader(System.in)) ;
        }
        public String getString(String info){    // 得到字符串信息
            String temp = null ;
            System.out.print(info) ;    // 打印提示信息
            try{
                temp = this.buf.readLine() ;    // 接收数据
            }catch(IOException e){
                e.printStackTrace() ;
            }
            return temp ;
        }
        public int getInt(String info,String err){    // 得到一个整数的输入数据
            int temp = 0 ;
            String str = null ;
            boolean flag = true ;    // 定义一个标记位
            while(flag){
                str = this.getString(info) ;    // 接收数据
                if(str.matches("^\d+$")){    // 判断是否由数字组成
                    temp = Integer.parseInt(str) ;    // 转型
                    flag = false ;    // 结束循环
                }else{
                    System.out.println(err) ;    // 打印错误信息
                }
            }
            return temp ;
        }
        public float getFloat(String info,String err){    // 得到一个小数的输入数据
            float temp = 0 ;
            String str = null ;
            boolean flag = true ;    // 定义一个标记位
            while(flag){
                str = this.getString(info) ;    // 接收数据
                if(str.matches("^\d+.?\d+$")){    // 判断是否由数字组成
                    temp = Float.parseFloat(str) ;    // 转型
                    flag = false ;    // 结束循环
                }else{
                    System.out.println(err) ;    // 打印错误信息
                }
            }
            return temp ;
        }
        public Date getDate(String info,String err){    // 得到一个小数的输入数据
            Date temp = null ;
            String str = null ;
            boolean flag = true ;    // 定义一个标记位
            while(flag){
                str = this.getString(info) ;    // 接收数据
                if(str.matches("^\d{4}-\d{2}-\d{2}$")){    // 判断是否由数字组成
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd") ;
                    try{
                        temp = sdf.parse(str) ;    // 将字符串变为Date型数据
                    }catch(Exception e){}
                    flag = false ;    // 结束循环
                }else{
                    System.out.println(err) ;    // 打印错误信息
                }
            }
            return temp ;
        }
    };
    public class Menu{
        public Menu(){
            while(true){
                this.show() ;        // 无限制调用菜单的显示
            }
        }
        public void show(){
            System.out.println("===== Xxx系统 =====") ;
            System.out.println("    [1]、增加数据") ;
            System.out.println("    [2]、删除数据") ;
            System.out.println("    [3]、修改数据") ;
            System.out.println("    [4]、查看数据") ;
            System.out.println("    [0]、系统退出
    ") ;
            InputData input = new InputData() ;
            int i = input.getInt("请选择:","请输入正确的选项!") ;
            switch(i){
                case 1:{
                    Operate.add() ;        // 调用增加操作
                    break ;
                }
                case 2:{
                    Operate.delete() ;    // 调用删除操作
                    break ;
                }
                case 3:{
                    Operate.update() ;    // 调用更新操作
                    break ;
                }
                case 4:{
                    Operate.find() ;        // 调用查看操作
                    break ;
                }
                case 0:{
                    System.exit(1) ;        // 系统退出
                    break ;
                }
                default:{
                    System.out.println("请选择正确的操作!") ;
                }
            }
        }
    };
    public class Operate{
        public static void add(){    // 增加操作
            System.out.println("** 选择的是增加操作") ;
        }
        public static void delete(){    // 删除操作
            System.out.println("** 选择的是删除操作") ;
        }
        public static void update(){    // 更新操作
            System.out.println("** 选择的是更新操作") ;
        }
        public static void find(){    // 查看操作
            System.out.println("** 选择的是查看操作") ;
        }
    };
    import java.io.* ;
    import java.util.* ;
    public class TestInput{
        public static void main(String args[]) throws Exception{
            InputData input = new InputData() ;
            // float f = input.getFloat("请输入小数:","输入的不是小数,请重新输入!") ;
            // System.out.println("小数:" + f) ;
            Date d = input.getDate("请输入日期,格式为(yyyy-mm-dd):","输入的日期格式不正确,请重新输入") ;
            System.out.println("日期" + d) ;
        }
    };
    import java.util.* ;
    public class ScannerDemo01{
        public static void main(String args[]){
            Scanner scan = new Scanner(System.in) ;    // 从键盘接收数据
            System.out.print("输入数据:") ;
            String str = scan.next() ;    // 接收数据
            System.out.println("输入的数据为:" + str) ;
        }
    };
    import java.util.* ;
    public class ScannerDemo02{
        public static void main(String args[]){
            Scanner scan = new Scanner(System.in) ;    // 从键盘接收数据
            System.out.print("输入数据:") ;
            scan.useDelimiter("
    ") ;
            String str = scan.next() ;    // 接收数据
            System.out.println("输入的数据为:" + str) ;
        }
    };
    import java.util.* ;
    public class ScannerDemo03{
        public static void main(String args[]){
            Scanner scan = new Scanner(System.in) ;    // 从键盘接收数据
            int i = 0 ;
            float f = 0.0f ;
            System.out.print("输入整数:") ;
            if(scan.hasNextInt()){    // 判断输入的是否是整数
                i = scan.nextInt() ;    // 接收整数
                System.out.println("整数数据:" + i) ;
            }else{
                System.out.println("输入的不是整数!") ;
            }
            System.out.print("输入小数:") ;
            if(scan.hasNextFloat()){    // 判断输入的是否是小数
                f = scan.nextFloat() ;    // 接收小数
                System.out.println("小数数据:" + f) ;
            }else{
                System.out.println("输入的不是小数!") ;
            }
        }
    };
    import java.util.* ;
    import java.text.* ;
    public class ScannerDemo04{
        public static void main(String args[]){
            Scanner scan = new Scanner(System.in) ;    // 从键盘接收数据
            String str = null ;
            Date date = null ;
            System.out.print("输入日期(yyyy-MM-dd):") ;
            if(scan.hasNext("^\d{4}-\d{2}-\d{2}$")){    // 判断
                str = scan.next("^\d{4}-\d{2}-\d{2}$") ;    // 接收
                try{
                    date = new SimpleDateFormat("yyyy-MM-dd").parse(str) ;
                }catch(Exception e){}
            }else{
                System.out.println("输入的日期格式错误!") ;
            }
            System.out.println(date) ;
        }
    };
    import java.util.* ;
    import java.text.* ;
    import java.io.* ;
    public class ScannerDemo05{
        public static void main(String args[]){
            File f = new File("D:" + File.separator + "test.txt") ;    // 指定操作文件
            Scanner scan = null ;
            try{
                scan = new Scanner(f) ;    // 从键盘接收数据
            }catch(Exception e){}
            StringBuffer str = new StringBuffer() ;
            while(scan.hasNext()){
                str.append(scan.next()).append('
    ')    ;    //    取数据
            }
            System.out.println("文件内容为:" + str) ;
        }
    };
    import java.io.DataInputStream ;
    import java.io.File ;
    import java.io.FileInputStream ;
    public class DataInputStreamDemo{
        public static void main(String args[]) throws Exception{    // 所有异常抛出
            DataInputStream dis = null ;        // 声明数据输入流对象
            File f = new File("d:" + File.separator + "order.txt") ; // 文件的保存路径
            dis = new DataInputStream(new FileInputStream(f)) ;    // 实例化数据输入流对象
            String name = null ;    // 接收名称
            float price = 0.0f ;    // 接收价格
            int num = 0 ;    // 接收数量
            char temp[] = null ;    // 接收商品名称
            int len = 0 ;    // 保存读取数据的个数
            char c = 0 ;    // 'u0000'
            try{
                while(true){
                    temp = new char[200] ;    // 开辟空间
                    len = 0 ;
                    while((c=dis.readChar())!='	'){    // 接收内容
                        temp[len] = c ;
                        len ++ ;    // 读取长度加1
                    }
                    name = new String(temp,0,len) ;    // 将字符数组变为String
                    price = dis.readFloat() ;    // 读取价格
                    dis.readChar() ;    // 读取	
                    num = dis.readInt() ;    // 读取int
                    dis.readChar() ;    // 读取
    
                    System.out.printf("名称:%s;价格:%5.2f;数量:%d
    ",name,price,num) ;
                }
            }catch(Exception e){}
            dis.close() ;
        }
    };
    import java.io.DataOutputStream ;
    import java.io.File ;
    import java.io.FileOutputStream ;
    public class DataOutputStreamDemo{
        public static void main(String args[]) throws Exception{    // 所有异常抛出
            DataOutputStream dos = null ;            // 声明数据输出流对象
            File f = new File("d:" + File.separator + "order.txt") ; // 文件的保存路径
            dos = new DataOutputStream(new FileOutputStream(f)) ;    // 实例化数据输出流对象
            String names[] = {"衬衣","手套","围巾"} ;    // 商品名称
            float prices[] = {98.3f,30.3f,50.5f} ;        // 商品价格
            int nums[] = {3,2,1} ;    // 商品数量
            for(int i=0;i<names.length;i++){    // 循环输出
                dos.writeChars(names[i]) ;    // 写入字符串
                dos.writeChar('	') ;    // 写入分隔符
                dos.writeFloat(prices[i]) ; // 写入价格
                dos.writeChar('	') ;    // 写入分隔符
                dos.writeInt(nums[i]) ; // 写入数量
                dos.writeChar('
    ') ;    // 换行
            }
            dos.close() ;    // 关闭输出流
        }
    };
    import java.io.File ;
    import java.io.SequenceInputStream ;
    import java.io.FileInputStream ;
    import java.io.InputStream ;
    import java.io.FileOutputStream ;
    import java.io.OutputStream ;
    public class SequenceDemo{
        public static void main(String args[]) throws Exception {    // 所有异常抛出
            InputStream is1 = null ;        // 输入流1
            InputStream is2 = null ;        // 输入流1
            OutputStream os = null ;        // 输出流
            SequenceInputStream sis = null ;    // 合并流
            is1 = new FileInputStream("d:" + File.separator + "a.txt") ;
            is2 = new FileInputStream("d:" + File.separator + "b.txt") ;
            os = new FileOutputStream("d:" + File.separator + "ab.txt") ;
            sis = new SequenceInputStream(is1,is2) ;    // 实例化合并流
            int temp = 0 ;    // 接收内容
            while((temp=sis.read())!=-1){    // 循环输出
                os.write(temp) ;    // 保存内容
            }
            sis.close() ;    // 关闭合并流
            is1.close() ;    // 关闭输入流1`
            is2.close() ;    // 关闭输入流2
            os.close() ;    // 关闭输出流
        }
    };
  • 相关阅读:
    CSS 圣杯/双飞翼布局
    java 面向对象编程-- 第15章 集合框架
    java 面向对象编程--第十四章 多线程编程
    java 面向对象编程-- 第十三章 反射、类加载与垃圾回收
    java 面向对象编程 --第十二章 JDK常用类
    java 面向对象编程--第十章 接口
    java面向对象编程--第十一章 异常处理
    java面向对象编程--第九章 多态和抽象
    java面向对象编程——第八章 类的高级概念
    java面向对象编程— —第七章 继承
  • 原文地址:https://www.cnblogs.com/tszr/p/12161292.html
Copyright © 2011-2022 走看看