GVKun编程网logo

java _io_打印流,PrintStream和PrintWriter(java打印流有什么用)

26

本文的目的是介绍java_io_打印流,PrintStream和PrintWriter的详细情况,特别关注java打印流有什么用的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个

本文的目的是介绍java _io_打印流,PrintStream和PrintWriter的详细情况,特别关注java打印流有什么用的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解java _io_打印流,PrintStream和PrintWriter的机会,同时也不会遗漏关于8.59 打印流PrintWriter作为Writer的子类使用、8.60 打印流PrintWriter实现自动刷新和换行、FileWrite BufferedWriter和PrintWriter结合、IO流标-准输出流PrintWriter 和 InputStream字节输入流 , 字符高级流OutputStreamWriter 和 InputStreamReade的知识。

本文目录一览:

java _io_打印流,PrintStream和PrintWriter(java打印流有什么用)

java _io_打印流,PrintStream和PrintWriter(java打印流有什么用)

*PrintStream和PrintWriter,效果相似

  • PrintStream ps=new PrintStream(字节流,true/false),为真则自动刷新内容,默认为假
  • System.out默认为PrintStream 打印流
  • 写入文件(通过.println):
  • PrintStream ps=new printStream(new BufferedStream(FileOutputStream("vv.txt")),true)
  • ps.println("ad")
  • 重定向输出端(输出到文件):System.setout(ps); ps.println("aa");
  • 重定向回控制台:System.setout(new PrintStream(new bufferedoutputstream(new FileOutputStream(FileDescriptor.out)),true));

PrintStream:

//打印流System.out
        PrintStream os =System.out;
        os.println("haha");

    //写入文件
    os= new PrintStream(new bufferedoutputstream(new FileOutputStream("vv.txt")),true);
    os.println("add");
    os.println(false);
    os.flush();
    os.close()

    //重定向输出端(输出到文件)
    System.setout(os);
    System.out.println("change");

    //重定向回控制台
    System.setout(new PrintStream(new bufferedoutputstream(new FileOutputStream(FileDescriptor.out)),true));
    //标准的输入输出端

PrintWriter:

PrintWriter pw=new PrintWriter(new bufferedoutputstream(new FileOutputStream("vv.txt")),true);
    pw.println("ff");
    pw.println(true);
    pw.close();

8.59 打印流PrintWriter作为Writer的子类使用

8.59 打印流PrintWriter作为Writer的子类使用

import java.io.IOException;
import java.io.PrintWriter;
/*
 * 打印流
 * 字节流打印流 PrintStream
 * 字符打印流 PrintWriter
 * 
 * 打印流的特点:
 *   A:只有写数据的,没有读取数据。只能操作目的地,不能操作数据源。
 *   B:可以操作任意类型的数据。
 *   C:如果启动了自动刷新,能够自动刷新。
 *   D:该流是可以直接操作文本文件的。
 *    哪些流对象是可以直接操作文本文件的呢?
 *    FileInputStream
 *    FileOutputStream
 *    FileReader
 *    FileWriter
 *    PrintStream
 *    PrintWriter
 *    看API,查流对象的构造方法,如果同时有File类型和String类型的参数,一般来说就是可以直接操作文件的。
 * 
 *    流:
 *     基本流:就是能够直接读写文件的
 *     高级流:在基本流基础上提供了一些其他的功能
 */
public class PrintWriterDemo {
 public static void main(String[] args) throws IOException {
  // 作为Writer的子类使用
  PrintWriter pw = new PrintWriter("pw.txt");
  pw.write("hello");
  pw.write("world");
  pw.write("java");
  
  pw.close();
 }
}

8.60 打印流PrintWriter实现自动刷新和换行

8.60 打印流PrintWriter实现自动刷新和换行

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
/*
 * 1:可以操作任意类型的数据。
 *   print()
 *   println()
 * 2:启动自动刷新
 *   PrintWriter pw = new PrintWriter(new FileWriter("pw2.txt"), true);
 *   还是应该调用println()的方法才可以
 *   这个时候不仅仅自动刷新了,还实现了数据的换行。
 * 
 *   println()
 *  其实等价于于:
 *  bw.write();
 *  bw.newLine();  
 *  bw.flush();
 */
public class PrintWriterDemo2 {
 public static void main(String[] args) throws IOException {
  // 创建打印流对象
  // PrintWriter pw = new PrintWriter("pw2.txt");
  PrintWriter pw = new PrintWriter(new FileWriter("pw2.txt"), true);
  // write()是搞不定的,怎么办呢?
  // 就应该看看它的新方法
  // pw.print(true);
  // pw.print(100);
  // pw.print("hello");
  pw.println("hello");
  pw.println(true);
  pw.println(100);
  pw.close();
 }
}

FileWrite BufferedWriter和PrintWriter结合

FileWrite BufferedWriter和PrintWriter结合

好的,所以我正在学习I /
O,并且在其中一张幻灯片中找到了以下代码。有人可以解释一下为什么需要FileWrite,BufferedWriter和PrintWriter吗?我知道BufferedWriter将缓冲输出并将其全部放入,但是为什么他们要使用FileWriter和PrintWriter?他们在错误处理等方面做得差不多吗?

而且为什么他们传递bwPrintWriter

      FileWriter fw = new FileWriter (file);
      BufferedWriter bw = new BufferedWriter (fw);
      PrintWriter outFile = new PrintWriter (bw);

IO流标-准输出流PrintWriter 和 InputStream字节输入流 , 字符高级流OutputStreamWriter 和 InputStreamReade

IO流标-准输出流PrintWriter 和 InputStream字节输入流 , 字符高级流OutputStreamWriter 和 InputStreamReade

1. 标准输入流

1)InputStream字节输入流 ,源数据源是标准输入设备(键盘、鼠标、触摸屏)等输入设备,InputStream和Reader是所有输入流的抽象基类。

 1 import java.io.IOException;
 2 import java.io.InputStream;
 3 
 4 public class Test1 {
 5     public static void main(String[] args) throws IOException {
 6         // 输入一句话,然后原样输出
 7 
 8         InputStream in = System.in;
 9 
10         System.out.println("请输入一句话:");
11 
12         byte[] buf = new byte[1024];// 一次读取1024个字节
13         int len;
14         // buf中包含回车和换行
15         len = in.read(buf);
16         String str = new String(buf, 0, len);
17 
18         System.out.println("你输入的是:" + str);
19 
20     }
21 
22 }

2)根据上一篇文章:IO流  的那首诗。从控制台输入这首诗,然后把这首诗写入文件里。

 1 import java.io.BufferedReader;
 2 import java.io.BufferedWriter;
 3 import java.io.File;
 4 import java.io.FileWriter;
 5 import java.io.IOException;
 6 import java.io.InputStream;
 7 import java.io.InputStreamReader;
 8 import java.io.UnsupportedEncodingException;
 9 
10 public class Test2 {
11     public static void main(String[] args) throws IOException, UnsupportedEncodingException {
12 
13         InputStream in = System.in;
14         InputStreamReader reader = new InputStreamReader(in, "GBK");
15         BufferedReader br = new BufferedReader(reader);
16 
17         File file = new File("D:" + File.separator + "javatest" + File.separator + "f.txt");
18 
19         FileWriter writer = new FileWriter(file);
20         BufferedWriter beWriter = new BufferedWriter(writer);
21         String endString = "bye";// 定义一个输入这首诗结束时的标志;
22         System.out.println("请输入一首诗:");
23         while (true) {
24             String line = br.readLine();
25             if (line.equals(endString)) {
26                 break;
27             }
28             
29             beWriter.write(line);//输入一行
30             beWriter.newLine();//换行和回车
31         }
32         
33         beWriter.flush();//刷新缓冲区
34         //关闭通道
35         beWriter.close();
36         writer.close();
37     
38     }
39 }

2. 标准输出流(PrintStream)

1)读取以上目录文件,显示到标准输出设备;

 1 import java.io.BufferedReader;
 2 import java.io.File;
 3 import java.io.FileNotFoundException;
 4 import java.io.FileReader;
 5 import java.io.IOException;
 6 import java.io.PrintStream;
 7 
 8 public class Test1 {
 9     public static void main(String[] args) throws FileNotFoundException, IOException {
10         
11         File file = new File("D:"+File.separator+"javatest"+File.separator+"f.txt");
12         //创建管道
13         FileReader fReader = new FileReader(file);
14         BufferedReader bReader = new BufferedReader(fReader);
15         
16         PrintStream pStream = System.out;
17         
18         String line;//定义一个字符串类型
19         
20         while ((line = bReader.readLine()) != null) {//循环读取文件中每一行,直到为空,就结束。
21             pStream.println(line);
22         }
23         //关闭通道
24         bReader.close();
25         fReader.close();
26     }
27 
28 }

 3.字符打印流 PrinWriter

用PrintWriter类对象的write()、print()、append()方法实现写入字符到文件,看看结果是否相同?

 1 import java.io.BufferedReader;
 2 import java.io.File;
 3 import java.io.FileInputStream;
 4 import java.io.FileNotFoundException;
 5 import java.io.IOException;
 6 import java.io.InputStream;
 7 import java.io.InputStreamReader;
 8 import java.io.PrintWriter;
 9 
10 
11 public class Test1 {
12     public static void main(String[] args) throws FileNotFoundException, IOException {
13         File file = new File("D:"+File.separator+"javatest"+File.separator+"g.txt");
14         
15         PrintWriter pWriter = new PrintWriter(file);
16         
17         pWriter.append("Hello");
18         pWriter.write("这个");
19         pWriter.println("你好");
20         
21         pWriter.close();
22         
23         //将PrintlWriter字符打印流 写文件的信息,输出到控制 台
24         InputStream iStream = new FileInputStream("D:"+File.separator+"javatest"+File.separator+"g.txt");
25         InputStreamReader iStreamReader = new InputStreamReader(iStream);
26         BufferedReader bReader = new BufferedReader(iStreamReader);
27         
28         String line;
29         /*line = bReader.readLine();*/ //写到while循环里
30         while ((line = bReader.readLine()) != null) {
31             
32             System.out.println(line);
33             //line = bReader.readLine();
34         }
35         
36         bReader.close();
37         iStream.close();
38         iStreamReader.close();
39     }
40 
41 }

输出

Hello这个你好

返回结果是相同的,PrinWriter的更多用法,可通过查询JDK API文档

4.Scanner(一般不用,了解即可)

 通过Scanner扫描文件、字节流等等。

 1 import java.io.File;
 2 import java.io.FileNotFoundException;
 3 import java.util.Scanner;
 4 
 5 public class Test1 {
 6     public static void main(String[] args) throws FileNotFoundException {
 7         //通过Scanner扫描文件、字节流等
 8         File file = new File("d:"+File.separator+"javatest"+File.separator+"c.txt");
 9         
10         Scanner sc = new Scanner(file);
11         
12         String line;
13         while (sc.hasNextLine()) {
14             line = sc.nextLine();
15             System.out.println(line);
16         }
17         
18         sc.close();
19     }
20 }

 或者通过扫描指定编码文件

 1 import java.io.File;
 2 import java.io.FileInputStream;
 3 import java.io.FileNotFoundException;
 4 import java.util.Scanner;
 5 
 6 public class Test1 {
 7     public static void main(String[] args) throws FileNotFoundException {
 8         //通过Scanner扫描文件、字节流等
 9         /*File file = new File("d:"+File.separator+"javatest"+File.separator+"c.txt");
10         
11         Scanner sc = new Scanner(file);*/
12         Scanner sc = new Scanner(new FileInputStream(new File("d:"+File.separator+"javatest"+File.separator+"c.txt")));
13         String line;
14         while (sc.hasNextLine()) {
15             line = sc.nextLine();
16             System.out.println(line);
17         }
18         
19         sc.close();
20     }
21 }

 

今天关于java _io_打印流,PrintStream和PrintWriterjava打印流有什么用的分享就到这里,希望大家有所收获,若想了解更多关于8.59 打印流PrintWriter作为Writer的子类使用、8.60 打印流PrintWriter实现自动刷新和换行、FileWrite BufferedWriter和PrintWriter结合、IO流标-准输出流PrintWriter 和 InputStream字节输入流 , 字符高级流OutputStreamWriter 和 InputStreamReade等相关知识,可以在本站进行查询。

本文标签: