java学习笔记:Java 流(Stream)文件(File)和IO

Posted pyqb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java学习笔记:Java 流(Stream)文件(File)和IO相关的知识,希望对你有一定的参考价值。

Java 的控制台输入由 System.in 完成。

为了获得一个绑定到控制台的字符流,你可以把 System.in 包装在一个 BufferedReader 对象中来创建一个字符流。需要import一下这个包

import java.io.BufferedReader;

下面是创建 BufferedReader 的基本语法:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

BufferedReader 对象创建后,我们便可以使用 read() 方法从控制台读取一个字符,或者用 readLine() 方法读取一个字符串。

实例:用 read() 方法从控制台不断读取单个字符直到用户输入 "q"。

 1 import java.io.*;
 2 
 3 public class Test{
 4     public static void main(String[] args) throws IOException{
 5         char c;
 6         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 7         System.out.println("输入字符, 按下 ‘q‘ 键退出。");
 8         do {
 9             c = (char)br.read();
10             System.out.println(c);
11         } while (c != ‘q‘);
12     }
13 }

运行:

fffffg
f
f
f
f
f
g

 

实例:读取和显示字符行直到你输入了单词"end"。

 1 import java.io.*;
 2 
 3 public class Test{
 4     public static void main(String[] args) throws IOException{
 5         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 6         String str;
 7         System.out.println("Enter lines of text.");
 8         System.out.println("Enter ‘end‘ to quit.");
 9         do {
10             str = br.readLine();
11             System.out.println(str);
12         } while (!str.equals("end"));
13     }
14 }

运行:

aaaa
aaaa
bbbbb
bbbbb
end
end

 

读写文件

实例:InputStream 和 OutputStream 写入读取文件:

 1 import java.io.*;
 2 
 3 public class Test{
 4     public static void main(String[] args) throws IOException{
 5         /**
 6          * 写入文件
 7          */
 8         File f = new File("test.txt");
 9         //构建FileOutputStream对象,文件不存在自动新建
10         FileOutputStream fop = new FileOutputStream(f);
11         //构建OutputStreamWriter对象,参数可以指定编码默认编码是Windows的gbk
12         OutputStreamWriter writer = new OutputStreamWriter(fop, "UTF-8");
13         //写到缓冲区
14         writer.append("中文输入:");
15         //换行
16         writer.append("\r\n");
17         //写到缓冲区
18         writer.append("English");
19         //close关闭写入流,会将缓冲区的内容写入到文件
20         writer.close();
21         //关闭输出流
22         fop.close();
23 
24         /**
25          * 读出文件
26          */
27         //构建FileInputStream对象
28         FileInputStream fip = new FileInputStream(f);
29         // 构建InputStreamReader对象,编码与写入相同
30         InputStreamReader reader = new InputStreamReader(fip, "UTF-8");
31         //建立一个字符串StringBuffer对象
32         StringBuffer sb = new StringBuffer();
33         while (reader.ready()){
34             // 转成char加到StringBuffer对象中
35             sb.append((char)reader.read());
36         }
37         //输出文件内容
38         System.out.println(sb.toString());
39         //关闭读取流
40         reader.close();
41         //关闭输入流,释放系统资源
42         fip.close();
43     }
44 }

运行输出:

中文输入:
English

 

以上是关于java学习笔记:Java 流(Stream)文件(File)和IO的主要内容,如果未能解决你的问题,请参考以下文章

Java 学习笔记 - IO篇:常见的IO流Stream以及相互关系

Java笔记:Java 流(Stream)文件(File)和IO

Java 学习笔记 - 读写字符文件

java笔记Java中的Stream流操作

Java8-04-笔记

Java8-04-笔记