java核心技术卷阅读笔记三_输入输出_文件读写_控制流程

一 : 控制台读取输入

1.1 读取输入 Scanner

  • 要想通 过控制台进行输人,首先需要构造一个 Scanner 对象,并与“ 标准输人流” System.in 关联
Scanner scanner = new Scanner(System.in);
  • 读取一整行
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();//读取一行
        System.out.println(name);
  • 如果读取单个的单词,以空格符作为分割:
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next(); //输入: ab b c
        System.out.println(str);// 输出: ab
        String str2 = scanner.next(); 
        System.out.println(str2);// 输出: b
  • 要想读取一个整数, 就调用 nextlnt 方法
System.out.print("How old are you? ")int age = in.nextlntO;

Scanner 类定义在java.util 包中。 当使用的类不是定义在基本java.lang 包中时,一定要使用 import 指示字将相应的包加载进来

1.2 读取密码 Console

  • Java SE 6 特别 引入了 Console 类实现这个目的。要想读取一个密码, 可以采用下列代码:
  • 为什么报空指针异常???
        Console cons = System.console();
        String username = cons.readLine("User name: ");
        char[] passwd = cons.readPassword("Password:");
  • 为了安全起见,返回的密码存放在一维字符数组中, 而不是字符串中。在对密码进 行处理之后,应该马上用一个填充值覆盖数组元素

1.3 API

java.util.Scanner 5.0

  • Scanner (InputStream in)
    用给定的输人流创建一个 Scanner 对象。
  • String nextLine( )
    读取输入的下一行内容。
  • String next( )
    读取输入的下一个单词(以空格作为分隔符)。
  • int nextlnt( )
  • double nextDouble( )
    读取并转换下一个表示整数或浮点数的字符序列。
  • boolean hasNext( )
    检测输入中是否还有其他单词。
  • boolean hasNextInt( )
  • boolean hasNextDouble( )
    检测是否还有表示整数或浮点数的下一个字符序列。

java.lang.System 1.0

  • static Console console( ) 6
    如果有可能进行交互操作, 就通过控制台窗口为交互的用户返回一个 Console 对象, 否则返回 null。对于任何一个通过控制台窗口启动的程序, 都可使用 Console对象。 否则,其可用性将与所使用的系统有关.

java.io.Console 6

  • static char[] readPassword(String prompt, Object…args)
  • static String readLine(String prompt, Object…args)
    显示字符串 prompt 并且读取用户输入,直到输入行结束。args 参数可以用来提供输人 格式。

二 : 文件输入与输出

2.1 输入

  • 要想对文件进行读取,就需要一个用 File 对象构造一个 Scanner 对象
Scanner scanner = new Scanner(Paths.get("D:\\CSS\\练习01\\index.html"),"utf-8");

2.2 输出

  • 要想写入文件, 就需要构造一个 PrintWriter 对象。在构造器中,只需要提供文件名:
// 如果该文件不存在,则会自动创建
// 会自动覆盖文件中原有的内容
PrintWriter printWriter = new PrintWriter("D:\\CSS\\练习01\\index2.html","utf-8");

2.3 完整的文件读取写入

  		Scanner scanner = new Scanner(Paths.get("D:\\CSS\\练习01\\index.html"),"utf-8");
        PrintWriter printWriter = new PrintWriter("D:\\CSS\\练习01\\index2.html","utf-8");
        while (scanner.hasNext()){
            //System.out.println(scanner.next());// 一个一个单词度的
            //System.out.println(scanner.nextLine()); // 一读一行
            //printWriter.write(scanner.nextLine());// 写入文件 没有换行
            printWriter.write(scanner.nextLine()+"\r\n");// 写入文件 换行
        }

        scanner.close();
        printWriter.close();

2.4 API

java.util.Scanner 5.0

  • Scanner(File f)
    构造一个从给定文件读取数据的 Scanner。
  • Scanner(String data)
    构造一个从给定字符串读取数据的 Scanner。

java.io.PrintWriter 1.1

  • PrintWriter(String fileName)
    构造一个将数据写入文件的 PrintWriter。文件名由参数指定。

java.nio.file.Paths 7

  • static Path get(String pathname)
    根据给定的路径名构造一个 Path。

三 :控制流程

3.1 块作用域

  • 块(即复合语句)是指由一对大括号括起来的若干条简单的 Java语句。块确定了变量的作 用域。一个块可以嵌套在另一个块中。
  • 不能在嵌套的两个块中声明同名的变量.

3.2 do while循环

  • 如果希望 循环体至少执行一次, 则应该将检测条件放在最后。使用 do/while 循环语句可以实现这种操 作方式。它的语法格式为:
    do statement while {condition);
	  int num;
      do {
          Scanner scanner = new Scanner(System.in);
          System.out.println("请输入小于10的数字:");
          num = scanner.nextInt();
          System.out.println(num);
      }while (num >= 10 );

3.3 中断控制流程语句

break;

  • 用于退出循环语句,直接结束整个循环.

带标签的 break语句

  • 用于跳出多重嵌套的循环语句。 有时候,在嵌套很深的循环语句中会发生一些不可预料的事情。此时可能更加希望跳到嵌套 的所有循环语句之外。
  • 标签必须放在希望跳出的最外 层循环之前, 并且必须紧跟一个冒号。
        第一层:
        for(int i =0; i < 10; i++){
            System.out.println("第一层:"+i);
            第二层:
          for (int j = 10; j > 0; j--){
              System.out.println("第二层:"+j);
              if( j < 5) {
                  //break ; // 默认跳出第二层的for循环,继续执行第一次的for循环.
                  break 第二层; // 同上
                  //break 第一层; // 直接结束第一层for循环,整个循环结束.
              }
          }
        }

continue ;

  • 跳出本次循环,继续执行下一次循环.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值