码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-10-27 15:47:28      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:als   app   笔记   相同   col   except   获得   换行   ringbuf   

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

标签:als   app   笔记   相同   col   except   获得   换行   ringbuf   

原文地址:http://www.cnblogs.com/zylq-blog/p/7742827.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!