Java输入输出

xiaoxiao2024-07-24  31

在命令行下要输入数据到程序中时,可以使用标准输入串对象System.in。但是实际中却很少直接使用它,因为System.in对象所提供的read()方法,是从输入串中取得一个字节的数据,并返回该字节的整数值,但如果您要取得的输入是一个字符串,或是一组数字时,System.in对象的read()方法一次只读入一个字节数据的方式并不适用。此时,可以通过java.util.Scanner类来取得使用者的输入。示例代码如下: import java.util.Scanner; public class ScannerDemo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入:"); System.out.printf("Hello! %s!\n",scanner.next()); } } 可以将Scanner看作是System.in对象的支持者,System.in取得使用者输入的内容后,交给Scanner作一些处理。其实这是Decorator模式的一个应用。使用Scanner的next()功能,可以取得使用者输入的一些字符串;Scanner的nextInt()功能,可以取得数字;类似的还有nextFloat(),nextBoolean()等方法来取得使用者的输入。如下代码所示: import java.util.Scanner; public class ScannerDemo2 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Please input a number:"); System.out.printf("Your input is: %d!\n",scanner.nextInt()); } }  Scanner遇到空格符、Tab键或Enter键就会返回下一个输入,很多情况下并不适用。此时可以使用java.io.BufferedReader类来取得输入。BufferedReader在构建时接受一个java.io.Reader对象,在读取标准输入串时,可以使用java.io.InputStreamReader,它继承了Reader类。可以使用以下方法来为标准输入串建立缓冲区对象:  BufferedReader+InputStreamReader+System.in三个工具组合在一起,可以让你进行文字输入的读取。如下代码所示: import java.io.*; public class BufferedReaderDemo { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("请输入一行文字,可以包含空白:"); String text = br.readLine(); System.out.printf("您输入了文字%s!\n",text); } } readLine()方法会返回按下Enter键之前的所有字符输入。不包括最后按下的Enter返回字符。静态对象in、out、err在程序执行时自动开启。分别对应标准输入串、标准输出串和标准错误输出串。还可以通过java命令运行时将输出结果定位到指定的文件,如:java HelloJava >HelloJavaResult.txt,>>与>类似,只是将在指定文件后面附加。
转载请注明原文地址: https://www.6miu.com/read-5017094.html

最新回复(0)