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以及相互关系