File file = new File("scores.txt");
if (file.exists()) {// 查询
System.out.println("文件存在,进入下一步");
// file.delete();
// System.exit(0);
}
if (!file.exists()) {
System.out.println("文件不存在,正在创建");
file.createNewFile();// 查询并创建
}
try (PrintWriter output = new PrintWriter(file);) {// 使用try语句,作用域结束后自动关闭流
// 不使用try语句时读写完记得要关闭流
System.out.println("正在写入字符串..");
output.println("hello file");
output.println(90);
output.println("hello wordl");
output.println(85);
System.out.println("写入完毕");
}
try (Scanner input = new Scanner(file)) {// 从文件内读取
while (input.hasNext()) {// 查询文件内容是否还有未读数据
String finrsName = input.next();// 获取数据
String mi = input.next();
String lastName = input.next();
System.out.println(finrsName + " " + mi + " " + lastName + " ");
}
}//使用了try语句,不需要手动关流 input.close();//关闭流
附带一个Scanner常用方法表
代码注释版:
// 默认分隔符为空格
// 标记是指数据类型
// useDelimiter("指定的分隔符");使用Scanner实例调用该方法
// Scanner a=new Scanner(new File("文件路径"));如果要读取中文,记得加一个字符串型编码表参数
// Scanner a=new Scanner("要扫描的字符串");
// Close();关闭流
// hasNext();是否还有更多数据
// next();从Scanner中读取读取下一个标记作为字符串返回
// nextLine();从Scanner中读取一行,以换行结束
// nextByte();读取下一个标记为byte的值返回
// nextShort();读取下一个标记为short的值返回
// nextInt();读取下一个标记为int的值返回
// nextLong();读取下一个标记为Long的值返回
// nextFloat();读取下一个标记为float的值返回
// nextDouble();读取下一个标记为double的值返回
// 以上类似的next的方法工作原理,一个标记读取方法首先跳过任意分隔符,然后开始读取,遇到分隔符就停止读取
// next类似方法在读取文件中的数据时是作为字符串读取的,所以除了next()方法外,其他方法在读取完字符将会自动从字符串转换为标记的数据类型
// next()方法和nextLine()都会读取一个字符串,不同的是,next读取的由分隔符分割的字符串,nextLine读取一个以换行符结束的行
一些细节
所谓分隔符也就是空格或者TAB键
上下俩图是连一起的
如果这里不理解可以自己尝试一下
加深理解
Scanner input=new Scanner("15 13");
System.out.println(input.nextInt()+input.nextInt());//输出结果是两数和