JAVA 输入输出
标准输入
在前面我们已经能够将内容输出到屏幕上了, 那怎样从命令行里获得数据呢
读取"标准输入"System.in就没有这么简单, 想要通过控制台进行输入, 首先要构造一个Scanner对象, 并与标准输入流System.in关联,
import java.util.Scanner; public class Hello { public static void main(String[] args){ Scanner a = new Scanner(System.in); System.out.println(a.nextLine()); // 读取一行 // System.out.println(a.next()); 读取一个字母, 空格分割 // System.out.println(a.nextInt()); 读取一个数字 // System.out.println(a.nextDouble()); 读取一个浮点数 // System.out.println(a.hasNext()); 检测输入中是否还有其他单词 // System.out.println(a.hasNextInt()); 检测输入中是否还有整数 // System.out.println(a.hasNextDouble()); 检测输入中是否还有浮点数 } }
文件的输入输出
想要对文件进行读取, 就要用File对象构造一个Scanner对象
import java.io.File; import java.util.Scanner; import java.io.IOException; public class Hello { public static void main(String[] args) throws IOException { File file = new File("F:\\java_test\\java_one\\test.txt"); Scanner input = new Scanner(file); while (input.hasNext()) { String firstName = input.nextLine(); System.out.println(firstName); } input.close(); } }
要想写入一个文件就要构造一个PrintWrite对象,
import java.io.File; import java.io.PrintWriter; import java.io.IOException; // 调用PrintWriter的构造方法可能会抛出某种I/O异常,Java强制编写代码处理这类异常 // 为了简单起见,只要在方法头中声明 throws Exception 即可 public class test { public static void main(String[] args) throws IOException { File file = new File("scores.txt"); if (file.exists()) { // 检查scores.txt是否存在 System.out.println("File already exists"); System.exit(1); // 如果存在则退出程序 } // 如果不存在则创建一个新文件 try (PrintWriter output = new PrintWriter(file);) { output.print("John T Smith "); output.println(90); output.print("Eric K Jones "); output.println(85); // 若没有try-with-resources结构则必须使用 close() 关闭文件,否则数据就不能正常地保存在文件中 // output.close(); } } }
如果用一个不存在的文件构造一个Scanner, 或者用一个不能被创建的文件名构造一个PrintWriter就会发生异常