使用Java中的输入/输出函数实现控制台交互
Java语言中提供了多个输入/输出函数用于实现控制台交互,可以方便地实现用户输入和程序输出。本文将介绍Java中常用的几种输入/输出函数,包括Scanner类、System.in和System.out、BufferedReader和PrintWriter类等。
一、Scanner类
Scanner类是Java中常用的输入函数之一,它提供了多种输入方法,可以读取控制台和文件等各种输入流。使用Scanner类可以方便地从控制台读取用户输入,以下是Scanner类的示例代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = scanner.nextInt();
System.out.printf("你输入的整数是:%d%n", num);
}
}
使用Scanner类时,首先需要创建Scanner对象,参数为输入流,这里使用System.in表示控制台输入。然后就可以使用nextInt()、nextDouble()、nextLine()等方法读取用户输入,其它方法可以查看官方文档。
二、System.in和System.out
System.in和System.out是Java语言自带的输入输出对象,分别表示标准输入和标准输出。使用这两个对象也可以方便地实现控制台交互,以下是System.in和System.out的示例代码:
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
byte[] bytes = new byte[1024];
System.out.println("请输入:");
int len = System.in.read(bytes);
System.out.printf("你输入的内容是:%s%n", new String(bytes, 0, len));
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用System.in.read()方法可以读取用户输入的内容,返回的是字节数组长度,需要转换为字符串输出,这里使用new String(bytes, 0, len)进行转换。
三、BufferedReader和PrintWriter类
BufferedReader和PrintWriter类是Java中常用的输入输出对象,它们分别提供了字符和字符串的输入输出。使用这两个类可以方便地实现控制台交互,以下是BufferedReader和PrintWriter类的示例代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class Main {
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw = new PrintWriter(System.out);
pw.println("请输入:");
String str = br.readLine();
pw.printf("你输入的内容是:%s%n", str);
pw.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用BufferedReader.readLine()方法可以读取用户输入的一行,使用PrintWriter.println()方法可以输出提示信息,使用PrintWriter.printf()方法可以输出格式化字符串,使用PrintWriter.flush()方法可以刷新输出缓冲区。
四、总结
Java中提供了多种输入输出函数用于实现控制台交互,包括Scanner类、System.in和System.out、BufferedReader和PrintWriter类等。每种函数都有各自的优劣,根据具体需求选择合适的函数可以提高程序开发效率和体验。
