本文的目的是介绍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打印流有什么用)
- 8.59 打印流PrintWriter作为Writer的子类使用
- 8.60 打印流PrintWriter实现自动刷新和换行
- FileWrite BufferedWriter和PrintWriter结合
- IO流标-准输出流PrintWriter 和 InputStream字节输入流 , 字符高级流OutputStreamWriter 和 InputStreamReade
java _io_打印流,PrintStream和PrintWriter(java打印流有什么用)
- 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的子类使用
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实现自动刷新和换行
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结合
好的,所以我正在学习I /
O,并且在其中一张幻灯片中找到了以下代码。有人可以解释一下为什么需要FileWrite,BufferedWriter和PrintWriter吗?我知道BufferedWriter将缓冲输出并将其全部放入,但是为什么他们要使用FileWriter和PrintWriter?他们在错误处理等方面做得差不多吗?
而且为什么他们传递bw
到PrintWriter
?
FileWriter fw = new FileWriter (file);
BufferedWriter bw = new BufferedWriter (fw);
PrintWriter outFile = new PrintWriter (bw);
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和PrintWriter和java打印流有什么用的分享就到这里,希望大家有所收获,若想了解更多关于8.59 打印流PrintWriter作为Writer的子类使用、8.60 打印流PrintWriter实现自动刷新和换行、FileWrite BufferedWriter和PrintWriter结合、IO流标-准输出流PrintWriter 和 InputStream字节输入流 , 字符高级流OutputStreamWriter 和 InputStreamReade等相关知识,可以在本站进行查询。
本文标签: