14.9.1 PrintStream 类
平时我们在控制台打印输出,是调用print方法和println方法完成的,这两个方法都来自于java.io.PrintStream类,该类能够方便地打印各种数据类型的值,是一种便捷的输出方式
构造方法
public PrintStream(String fileName): 使用指定的文件名创建一个新的打印流
PrintStream ps = new PrintStream("ps.txt");
改变打印流向
System.out就是PrintStream类型的,只不过它的流向是系统规定的,打印在控制台上不过,既然是流对象,就可以玩一个”小把戏”,改变它的流向
public class PrintDemo {public static void main(String[] args) throws IOException {// 调用系统的打印流,控制台直接输出97System.out.println(97);// 创建打印流,指定文件的名称PrintStream ps = new PrintStream("ps.txt");// 设置系统的打印流流向,输出到ps.txtSystem.setOut(ps);// 调用系统的打印流,ps.txt中输出97System.out.println(97);}}
14.9.2 Scanner类
构造方法
- Scanner(File source) :构造一个新的 Scanner,它生成的值是从指定文件扫描的
- Scanner(File source, String charsetName) :构造一个新的 Scanner,它生成的值是从指定文件扫描的
- Scanner(InputStream source) :构造一个新的 Scanner,它生成的值是从指定的输入流扫描的
- Scanner(InputStream source, String charsetName) :构造一个新的 Scanner,它生成的值是从指定的输入流扫描的
常用方法
- boolean hasNextXxx(): 如果通过使用 nextXxx() 方法,此扫描器输入信息中的下一个标记可以解释为默认基数中的一个 Xxx 值,则返回 true
- Xxx nextXxx(): 将输入信息的下一个标记扫描为一个 Xxx ```java import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.Scanner;
import org.junit.Test;
public class TestFile {
@Test
public void test1() throws IOException {
Scanner input = new Scanner(System.in);
ArrayList
@Testpublic void test3() throws FileNotFoundException{System.setIn(new FileInputStream("1.txt"));Scanner input = new Scanner(System.in);while(input.hasNextLine()){String str = input.nextLine();System.out.println(str);}input.close();}
} ```
