Java基础-009-Java输入输出

Java基础-009-Java输入输出

读取输入

前面已经看到, 打印输出到“ 标准输出流”(即控制台窗口)是一件非常容易的事情,只要调用 System.out.println 即可。然而,读取“ 标准输人流” System.in 就没有那么简单了。要想通过控制台进行输人,首先需要构造一个 Scanner 对象,并与“ 标准输人流” System.in 关联。java.util.Scanner 是 Java5 的新特征

Scanner in = new Scanner(System.in);
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        System.out.print("What is your name? ");
        String name = in.nextLine() ;

        System.out.print("How old are you? ");
        int age = in.nextInt();

        System.out.println("Hello, " + name + ". Next year, you'll be " + (age + 1));
    }
}

API: java.util.Scanner 5.0

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

Console

因为输入是可见的, 所以 Scanner 类不适用于从控制台读取密码。Java SE 6 特别
引入了 Console 类实现这个目的。

public class Main {
    public static void main(String[] args) {
        Console cons = System.console();
        String username = cons.readLine("User name: ");
        char[] passwd = cons.readPassword("PassWord: ");
        System.out.println("User name: " + username);
        System.out.println("PassWord: " + String.valueOf(passwd));
    }
}
Java.io.Console 只能用在标准输入、输出流未被重定向的原始控制台中使用,在 Eclipse 或者其他 IDE 的控制台是用不了的。

在这里插入图片描述在这里插入图片描述

格式化输出

System.out.print
System.out.println
System.out.printf

System.out.printf

Java SE 5.0 沿用了 C 语言库函数中的 printf 方法。

    public static void main(String[] args) {
        double x = 10000.0 / 3.0;
        System.out.println(x);
        System.out.printf("%10.2f",x);
    }

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

格式说明符的语法图

格式说明符的语法图

String.format

可以使用静态的 String.format 方法创建一个格式化的字符串, 而不打印输出:

String message = String.format("Hello, %s. Next year , you'll be %d", name, age) ;

System.out.print

常用System.out.print\System.out.println默认转换为字符串输出
在这里插入图片描述

文件输入与输出

Scanner in = new Scanner(Paths.get(“myfile.txt”), “UTF-8”);
PrintWriter out = new PrintWriter(“myfile.txt”, “UTF-8”);

    public static void main(String[] args) {
        String name = "";
        int age = -1;
        try {
            Scanner in = new Scanner(Paths.get("myfile.txt"), "UTF-8");
            int rows = 1;
            while (in.hasNextLine()) {
                if ((rows % 2) == 1) {
                    name = in.nextLine();
                    System.out.println("What is your name? " + name);
                } else if ((rows % 2) == 0) {
                    age = in.nextInt();
                    System.out.println("How old are you? " + age);
                }
                rows++;
            }
            in.close();

            PrintWriter out = new PrintWriter("myfile.txt", "UTF-8");
            out.println("Hello, " + name + ". Next year, you'll be " + (age + 1));
            out.close();
        } catch (Exception e) {
            System.out.println("myflle.txt 读写异常");
        }
    }

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xhBruce

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值