读取输入
只要调用System.out.println就可以实现打印输出到“标准输出流”(即控制台窗口)。然而,读取“ 标准输入流” System.in 就没有那么简单了。要想通过控制台进行输入,首先需要构造一个 Scanner 对象,并与“ 标准输入流” System.in 关联。
Scanner in = new Scanner(System.in);
现在就可以使用Scanner类的各种方法实现输入操作。
| 方法 | 实现功能 |
|---|---|
| Scanner (InputStream in) | 用给定的输入流创建一个 Scanner 对象 |
| String nextLine( ) | 读取输入的下一行内容 |
| String next( ) | 读取输入的下一个单词(以空格作为分隔符) |
| int nextlnt( ) | 读取并转换下一个表示整数的字符序列 |
| double nextDouble( ) | 读取并转换下一个表示浮点数的字符序列 |
| boolean hasNext( ) | 检测输入中是否还有其他单词 |
| boolean hasNextInt( ) | 检测是否还有表示整数的下一个字符序列 |
| boolean hasNextDouble( ) | 检测是否还有表示浮点数的下一个字符序列 |
Scanner 类定义在java.util 包中。因此使用Scanner类需要在程序的最开始添加上一行:
import java.util.*;
当使用的类不是定义在基本java.lang 包中时,一定要使用import 指示字将相应的包加载进来。
格式化输出
在早期的 Java 版本中,格式化数值曾引起过一些争议。庆幸的是,Java SE 5.0 沿用了 C语言库函数中的 printf方法。在 printf中,可以使用多个参数, 例如:
System.out.printf("Hello,%s.Next year, you'll be %d", name, age);
每一个以 % 字符开始的格式说明符都用相应的参数替换。 格式说明符尾部的转换符将指示被格式化的数值类型。下表列出了printf所有转换符。
| 转换符 | 类型 | 举例 |
|---|---|---|
| d | 十进制整数 | 159 |
| s | 字符串 | Hello |
| x | 十六进制整数 | 9f |
| c | 字符 | H |
| o | 八进制整数 | 237 |
| b | 布尔 | True |
| f | 定点浮点数 | 15.9 |
| h | 散列码 | 42628b2 |
| e | 指数浮点数 | 1.59e+01 |
| g | 通用浮点数 | 一 |
| % | 百分号 | % |
| a | 十六进制浮点数 | 0xl.fccdp3 |
| n | 与平台有关的行分隔符 | 一 |
另外,还可以给出控制格式化输出的各种标志。下表列出了printf所有的标志。
| 标志 | 目的 | 举例 |
|---|---|---|
| + | 打印正数和负数的符号 | +3333.33 |
| 空格 | 在正数之前添加空格 | — |
| 0 | 数字前面补 0 | 003333.33 |
| - | 左对齐 | — |
| ( | 将负数括在括号内 | ( 3333.33 ) |
| , | 添加分组分隔符 | 3,333.33 |
| # ( 对于 f 格式) | 包含小数点 | 3,333. |
| # (对于 x 或 0 格式) | 添加前缀 0x 或 0 | 0xcafe |
| $ | 给定被格式化的参数索引 | 159 9F |
| < | 格式化前面说明的数值 | 159 9F |
文件输入与输出
要想对文件进行读取,就需要一个用 File 对象构造一个 Scanner 对象,如下所示:
Scanner in = new Scanner(Paths.get("niyflle.txt"), "UTF-8");
如果文件名中包含反斜杠符号,就要记住在每个反斜杠之前再加一个额外的反斜杠: “ c:\mydirectory\myfile.txt ” 。
现在,就可以利用前面介绍的任何一个 Scanner 方法对文件进行读取。要想写入文件, 就需要构造一个 PrintWriter 对象。在构造器中,只需要提供文件名:
PrintWriter out = new PrintWriterC('myfile.txt", "UTF-8");
如果文件不存在,创建该文件。 可以像输出到 System.out—样使用 print、 println 以及 printf命令。
Java输入输出与Scanner详解:控制台交互与文件操作
1万+

被折叠的 条评论
为什么被折叠?



