Scanner、PrintWriter

读取输入

要想通过控制台进行输入,首先需要构造一个与“标准输入流”System.in关联的Scanner对象。

Scanner scan = new Scanner(System.in);

然后,就可以通过scan的各种方法来读取输入了。

  • String nextLine() 读取输入的一整行
  • int nextInt() 读取输入中的单词(以空格隔开),若读取的不是整型,则抛出异常
  • double nextDouble() ……
import java.util.*;

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

        System.out.println("What's your name?");
        String name = scan.nextLine();

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

        System.out.println("How tall are you?");
        double height = scan.nextDouble();

        System.out.println("name:" + name);
        System.out.println("age:" + age);
        System.out.println("height:" + height + "cm"); 
    }

} 

Scanner类定义在java.util包中,当使用的类不是定义在基本的java.lang包中时,一定要使用import指定导入相应的包。

文件的输入与输出

要想读入一个文件,需要一个构造Scanner对象。

Scanner scan = new Scanner(new File("test.php"));

然后,就可以通过Scanner的获取文件内容的方法去获取内容。下面是输出一个文件所有内容的代码:

import java.util.*;
import java.io.*;

public class Sty {
    public static void main (String [] args) throws Exception {
       Scanner scan = new Scanner(new File("test.php"));

       while (scan.hasNext()) {
           System.out.println(scan.nextLine());
       }
    }

} 

要想写入一个文件,就需要构建一个printWriter对象。在构造器里,需要提供文件名和字符编码。如果文件不存在的话,就会创建该文件。

import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;

public class Sty {
    public static void main (String [] args) throws IOException {
        var wrt = new PrintWriter("index.php", StandardCharsets.UTF_8);

        wrt.println("<?php");
        wrt.println();
        wrt.println("phpinfo()");
        wrt.close();
    }
} 
Posted in: IO