读取输入
Scanner类的各种方法可以实现输入操作。例如,nextLine方法将输入一行。
想要读取一个单词(以空白符作为分隔符),就调用next方法。
因为输入是可见的,所以Scanner类不适用于从控制台读取密码。Java SE 6 特别引入了Console实现这个目的。想要读取一个密码,可以采用以下代码:
Console cons = System.console();
String username = cons.readLine("User name: ");
char[] passwd = cons.readPassword("Password: ");
为了安全起见,返回的密码存放在一组字符数组中,而不是字符串中。在对密码进行处理之后,就应该马上用一个填充值覆盖数组元素。
采用Console对象处理输入不如采用Scanner方便。每次只能读取一行输入,而没有能够读取一个单词或一个数组的方法。
格式化输出
Java SE 5.0 沿用了C语言库函数中的printf方法。例如,调用
System.out.printf(%8.2f, x);
可以用8个字符的宽度和小数点后两个字符的精度打印x。
每一个以%字符开始的格式说明符都用相应的参数替换
另外,还可以给出控制格式化输出的各种标志。可以使用多个标志,例如,"%,(.2f"使用分组的分隔符并将负数括在括号内。
格式说明符的语法如下:
文件输入与输出
当指定一个相对文件名时,例如,“myfile.txt”。文件位于Java虚拟机启动路径的相对位置。
使用集成开发环境的时候,可以使用下面的调用方式找到路径的位置:
String dir = System.getProperty("user.dir");
如果觉得定位文件比较烦恼,那就可以考虑使用绝对路径。