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就会发生异常

posted @ 2018-12-31 16:05  瓜田月夜  阅读(116)  评论(0)    收藏  举报