标准输入:
Scanner cin = new Scanner(System.in); cin.nextLine();:输入一行,可能存在空格,功能特点类似于C中的gets(); cin.next();:输入一个单词,以空白字符为结束标志,类似于scanf(“%s”,str); cin.nextInt();:输入整形数据 cin.nextDouble();输入浮点性数据
以上4种输入方式这些输入都是可见的,不适用于控制台读取密码
控制台密码的读取,应用Console类:一次读入一行
为了安全起见,返回的密码存放在一维数组中,对密码进行了处理,用一个填充值覆盖 数组元素
代码:
import java.io.Console; public class Main { public static void main(String[] args) { Console cin = System.console(); String name = cin.readLine("Username:"); char[] Password = cin.readPassword("Password:"); String Pass = "";//初学还不知道这里有没有什么好的办法 for(int i = 0;i<Password.length;i++) { Pass = Pass + Password[i]; } if(Pass.equals("123456") && name.equals("xxx")) { System.out.println("密码正确"); } else { System.out.println("密码错误"); } } }
标准输出:
就比较简单了
System.out.println(“hello”);//加上ln会自动换行,不加则不换
System.out.println(“heado”+”,”+”world”+2014);//打印hello,world2014,为了字符串连接,重载了+运算符
于此同时 JAVA SE5.0还沿用了C中的printf();方法,用法和C基本一样
double x = 0.56; System.out.printf("%.2f",x);//只是没有了&符
System.out.println();是最常用的
文件的输入和输出:
1.要想对文件进行读取,就要用File对象构造一个Scanner对象,如:
Scanner cin = new Scanner(Paths.get("myfile.txt"));
如果文件名中有反斜杠,就要在每个反斜杠的前面再加一个反斜杠:
“C:\\MyFile\\myfile.txt”
2.要想写入,就要构造PrintWriter对象,只需要提供文件名
PrintWriter out = new PrintWriter("myfile.txt");
如果文件不存在,则创建文件,可以输出到System.out一样使用print、println、printlf等命令
注意:
可以构造一个带子父串参数的Scanner,但这个Scanner将字符串解释为数据,而不是文件名
Scanner in = new Scanner(“myfile.txt”);
这个Scanner会将参数作为包含10个字符的数据:’m’、‘y’、’f’等
PS:
当指定一个相对文件名时,例:myfile.txt 或 .../myfile.txt
文件位于Java虚拟机启动路径的相对位置
1.如果在命令行方式下,用下列命令启动程序
java.MyProg //启动路径就是命令解释器的当前路径
2.如果使用集成开发环境,那么启动路径由IDE控制,可以使用下面的调用方式来找到路径的位置:
String dir = System.getProperty(“user.dir”);
如果觉得定位文件比较麻烦,可以考虑用绝对路径,如“C:\\madirectory\\myfile.txt”或者/home/me/directory/myfile.txt
警告:
如果用一个不存在的文件构造一个Scanner或用一个不能被创建的文件名构造一个PrintWriter那么就会出现异常,这些异常,在Java被认为比“整除零”更严重,所以,需要在main方法中用throws标记
public static void main(String[] args)throws FileNotFoundException { PrintWriter out = new PrintWriter("myfile.txt"); }
PS:当采用命令行方式启动一个人程序,可以用重定向将文件捆绑到System.in和System.out
Java MyProg <myfile.txt> output.txt
这样就不必担心处理FileNotFoundException异常了
java.util.Scanner 5.0
Scanner(File f)
构造一个从给定文件读取数据的Scanner
Scanner(String data)
构造一个从给定字符串读取数据的Scanner
import java.io.PrintWriter 1.1
PrinteWriter(String FileName)
构造一个将数据写入文件的PrintWriter,文件名由参数指定
Java.nio.file.Paths 7
Static Path get(String Pathname)
根据给定的路径构造一个Path