14.9.1 PrintStream 类

平时我们在控制台打印输出,是调用print方法和println方法完成的,这两个方法都来自于java.io.PrintStream类,该类能够方便地打印各种数据类型的值,是一种便捷的输出方式

构造方法

public PrintStream(String fileName): 使用指定的文件名创建一个新的打印流

  1. PrintStream ps = new PrintStream("ps.txt");

改变打印流向

System.out就是PrintStream类型的,只不过它的流向是系统规定的,打印在控制台上不过,既然是流对象,就可以玩一个”小把戏”,改变它的流向

  1. public class PrintDemo {
  2. public static void main(String[] args) throws IOException {
  3. // 调用系统的打印流,控制台直接输出97
  4. System.out.println(97);
  5. // 创建打印流,指定文件的名称
  6. PrintStream ps = new PrintStream("ps.txt");
  7. // 设置系统的打印流流向,输出到ps.txt
  8. System.setOut(ps);
  9. // 调用系统的打印流,ps.txt中输出97
  10. System.out.println(97);
  11. }
  12. }

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 list = new ArrayList<>(); while(true){ System.out.print(“请输入一个单词:”); String str = input.nextLine(); if(“stop”.equals(str)){ break; } list.add(str); } System.out.println(list); input.close(); } @Test public void test2() throws IOException { Scanner input = new Scanner(new File(“1.txt”)); while(input.hasNextLine()){ String str = input.nextLine(); System.out.println(str); } input.close(); }

  1. @Test
  2. public void test3() throws FileNotFoundException{
  3. System.setIn(new FileInputStream("1.txt"));
  4. Scanner input = new Scanner(System.in);
  5. while(input.hasNextLine()){
  6. String str = input.nextLine();
  7. System.out.println(str);
  8. }
  9. input.close();
  10. }

} ```