1.标准输入流
public final class System
-
public static final InputStream in“标准”输入流。
-
该流已经打开,准备提供输入数据。 通常,该流对应于键盘输入或由主机环境或用户指定的另一个输入源。
-
public static final PrintStream out“标准”输出流。
-
此流已经打开并准备好接受输出数据。 通常,此流对应于显示输出或由主机环境或用户指定的另一个输出目标。
对于简单的独立Java应用程序,编写一行输出数据的典型方法是:
System.out.println(data)
public static void main(String[] args) throws IOException { // 1. InputStream inputStream = System.in; // int by; // while ((by=inputStream.read())!=-1){ // System.out.println(((char)by)); // } //// 如何把字节流转化为字符流?用转换流 // 2. InputStreamReader inputStreamReader = new InputStreamReader(inputStream); //// 使用字符流能不能实现一次读一行数据?可以,但是一次读取一行数据是字符流的特有方法: // 3. BufferedReader bufferedWriter = new BufferedReader(inputStreamReader); // 上面三步其实可以合成一步: BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入一行字符串:"); String s = bufferedReader.readLine();//不可以读取换行符 System.out.println("您输入的内容是:" + s); System.out.println("请输入一个整数:"); int i = Integer.parseInt(bufferedReader.readLine()); System.out.println("您输入的整数是:" + i); // 自己实现键盘录入太麻烦了,于是java封装了一个输入类供我们使用: Scanner scanner = new Scanner(System.in); String s1 = scanner.nextLine(); }
2.标准输出流
//public static final PrintStream out“标准”输出流。 PrintStream out = System.out; // public class PrintStream extends FilterOutputStream //System.out本质是一个字节输出流 out.println("123"); out.print(1);//必须带参数 System.out.print(2); System.out.println(123);
3.字节打印流,字符打印流
// PrintStream(String fileName) 使用指定的文件名创建新的打印流 PrintStream stream = new PrintStream("java_base_learn.txt");//写到项目根目录下面的java_base_learn.txt文件里面 // 普通字节输出流写数据方法 stream.write(97);//a stream.write(98);//b // 特有方法写数据 stream.println(97);//97 stream.println(98);//98 stream.close();
PrintWriter printWriter = new PrintWriter("java_base_learn2.txt"); printWriter.write("write第一个字符串"); printWriter.println("println输出的字符串"); printWriter.close(); PrintWriter printWriter1 = new PrintWriter(new FileWriter("java_base_learn3.txt"), true); printWriter1.println("自动刷新的构造方法创建的对象创建的字符串"); printWriter1.close();
字符打印流改进原来复制文件的方法:
// 需求:将项目根目录下的java_base_learn3.txt文件内容复制到项目根目录下的java_base_learn4.txt文件 // 原方法实现: BufferedReader bufferedReader = new BufferedReader(new FileReader("java_base_learn3.txt")); BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("java_base_learn4.txt")); String line; while ((line=bufferedReader.readLine())!=null){ bufferedWriter.write(line); bufferedWriter.newLine(); bufferedWriter.flush(); } bufferedWriter.close(); bufferedReader.close(); // // 改进方法实现: BufferedReader bufferedReader = new BufferedReader(new FileReader("java_base_learn3.txt")); PrintWriter printwriter = new PrintWriter(new FileWriter("java_base_learn4.txt",true)); String line; while ((line=bufferedReader.readLine())!=null){ printwriter.println(line); } bufferedWriter.close(); bufferedReader.close();