读取输入
通过控制台输入
import java.util.Scanner;
//构造Scanner对象
Scanner scan = new Scanner(System.in);
//输入一行
String name = scan.nextLine();
//读取一个单词(以空白符作分隔符)
String firstName = scan.next();
//读一个整数 等等
int age = scan.nextInt();
//读取密码时Scanner不安全,用Console
//Console每次只能读取一行输入,不方便。
Console cons = System.console();
String username = cons.readLine("User name:");
char[] passwd = cons.readPassword("Password:");
Scanner:
• boolean hasNext( )
检测输入中是否还有其他单词。
• boolean hasNextInt( )
• boolean hasNextDouble( )
检测是否还有表示整数或浮点数的下一个字符序列。
System:
• static Console console( ) 6
如果有可能进行交互操作,就通过控制台窗口为交互的用户返回一个Console对象,否则返回null。对于任何一个通过控制台窗口启动的程序,都可使用Console对象。否则,其可用性将与所使用的系统有关。
Console:
• static char[] readPassword(String prompt, Object…args)
• static String readLine(String prompt, Object…args)
显示字符串prompt并且读取用户输入,直到输入行结束。args提供输入格式。
格式化输出
跟C类似,用printf方法。f:浮点数 s:字符串 d:十进制整数
第二句idea一直报错,用cmd就行,现在看来是idea里面jdk版本问题
System.out.printf("Hello,%s.Next year, you'll be %d",name,age);
//,标志增加分组分隔符; %.2f表示保留两位小数
System.out.printf("%,.2f",10000.0/3.0);//3,333.33
//String.format创建格式化字符串,而不打印输出。
String message = String.format("Hello,%s.Next year, you'll be %d",name,age);
文件输入与输出
//文件名中有\时在每个\前再加一个\
Scanner in = new Scanner(new File("c:\\mydirectory\\myfile.txt"));
//写入文件
PrintWriter out = new PrintWriter("c:\\mydirectory\\myfile.txt);
若指定文件位置时用相对路径,则是相对Java虚拟机启动路径的位置。若在命令行下启动,路径为命令解释器路径。可以用绝对路径。
• PrintWriter(File f)
构造一个将数据写入给定文件的PrintWriter。
• PrintWriter(String fileName)
构造一个将数据写入文件的PrintWriter。文件名由参数指定。