黄阶低级 - 《 Java 核心》- 3.7 输入输出 - 修改0次

输入输出

1、读取输入

  • 构建一个 Scanner 对象,并与”标准输入流“ System.in 关联:
Scanner scan = new Scanner(System.in);
//构建一个 Scanner 对象,并与”标准输入流“ System.in 关联
  • 因为输入是可见的,所以 Scanner 类不适用于控制台读取密码,可以使用 Console 类,但每次只能读取一行,而且在 IDE 上无法使用:
Console cons = System.console();
String username = cons.readLine("User name: ");
char[] passwd = cons.readPassword("Password: ");

2、格式化输出

  • 一种方法是 Java 沿用了 C 语言的 printf 方法!
System.out.printf("%,.2f", 10000 / 3.0);//输出3,333.33
  • 另一种方法可以用 String.format 方法创建一个不输出的格式化字符串。
String name = "boy";
int age = 10;
String message = String.format("Hello,%s.Next year,you'll be %d \n", name, age);
System.out.printf(message);
// 输出Hello,boy.Next year,you'll be 10
  • 打印当前时间和日期
System.out.printf("%tc", new Date());
// 输出 星期六 八月 13 16:52:09 CST 2016

3、文件输入与输出

文件的输入和输出都需要一个专门的对象来做这件事

  • 对文件进行读取,使用一个File对象来构造一个 Scanner 对象:
try {
    Scanner scan = new Scanner(Paths.get("/home/Desktop/myfile.txt"));
// 如果是win系统,使用双反斜杠
    } catch (IOException e) {
        e.printStackTrace();
    }
  • Scanner 可以带字符串参数,但会被解释为数据:
Scanner scan = new Scanner("/home/Desktop/myfile.txt");
// 这个scanner会将参数作为'h'、'o'、'm'、'e'等字符
  • 写入文件需要构造一个 PrintWriter 对象:
PrintWriter out = new PrintWriter("/home/Desktop/myfile2.txt");
//在构造器中只需要提供文件名,没有的话会新建,如果之前已存在会覆盖,最好先检查一下,防止丢失数据
  • 使用绝对路径可以避免一些麻烦
  • 如果用一个不存在的文件构造一个Scanner,或者用一个不能被创建的文件名来构造一个PrintWriter,就会发生异常。
发布了41 篇原创文章 · 获赞 2 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章