JAVA输入/输出流
前期知识准备
1、基本java语法
基本原理:
程序在运行期间,可能需要从外部的存储媒介或其他程序中读入所需要的数据,这就需要使用输入流对象。输入流的指向称作它的源,程序从指向源的输入流中读取源中数据。另一方面,程序在处理数据后,可能需要将处理结果写入到永久的存储媒介中或传给其他应用程序,这就需要使用输出流对象。输出流的指向称作它的目的地,程序通过向输出流中写入数据把数据传送到目的地。
(本博文只给出文件字节流,文件字符流,缓冲流实例)
文件字节流:
FileInputStream 父类 InputStream
FileOutputStream 父类 OutputStream
FileInputStream 构造函数 FileInputStream(String name)
FileInputStream(File file)
FileOutputStream 构造函数 FileOutputStream(String name)
FileOutputStream(File file)
文件字节流实例:
<p><span style="color:rgb(127,0,85);">import</span> java.io.FileOutputStream;</p><p><span style="color:rgb(127,0,85);">public</span> <span style="color:rgb(127,0,85);">class</span> study {</p><p> <span style="color:rgb(127,0,85);">public</span> <span style="color:rgb(127,0,85);">static</span> <span style="color:rgb(127,0,85);">void</span> main(String [] <span style="color:rgb(106,62,62);">args</span>){</p><p> <span style="color:rgb(127,0,85);">byte</span>[] <span style="color:rgb(106,62,62);">a</span> = <span style="color:rgb(42,0,255);">"我是110</span><span style="color:rgb(42,0,255);">,</span><span style="color:rgb(42,0,255);">"</span>.getBytes();</p><p> <span style="color:rgb(127,0,85);">byte</span>[] <span style="color:rgb(106,62,62);">b</span> = <span style="color:rgb(42,0,255);">"你是120</span><span style="color:rgb(42,0,255);">,</span><span style="color:rgb(42,0,255);">"</span>.getBytes();</p><p> <span style="color:rgb(127,0,85);">try</span> {</p><p> FileOutputStream <span style="color:rgb(106,62,62);">out</span> = <span style="color:rgb(127,0,85);">new</span> FileOutputStream(<span style="color:rgb(42,0,255);">"happy.txt"</span>);</p><p> <span style="color:rgb(106,62,62);">out</span>.write(<span style="color:rgb(106,62,62);">a</span>);</p><p> <span style="color:rgb(106,62,62);">out</span>.write(<span style="color:rgb(106,62,62);">b</span>, 0, <span style="color:rgb(106,62,62);">b</span>.<span style="color:rgb(0,0,192);">length</span>);</p><p> <span style="color:rgb(106,62,62);">out</span>.close();</p><p> } <span style="color:rgb(127,0,85);">catch</span> (Exception <span style="color:rgb(106,62,62);">e</span>) {</p><p> <span style="color:rgb(106,62,62);">e</span>.printStackTrace();</p><p> }</p><p> }</p><p>}</p>
输出结果:
文件字符流:
FileReader 父类 Reader
FileWriter 父类 Writer
FileReader 构造函数 FileReader(String filename)
FileReader(File filename)
FileWriter 构造函数 FileWriter(String filename)
FileWriter(File filename)
文件字符流实例:
import java.io.File; import java.io.FileReader; import java.io.FileWriter; public class study1 { public static void main(String [] args){ String str = "欢迎关注,Ucky.k的博客."; try { //从缓存写入目的地 File f = new File("hello.txt"); FileWriter out = new FileWriter(f); out.write(str,0,str.length()); out.close(); //从源读入缓存 FileReader in = new FileReader(f); char[] sr = new char[20]; if(in.read(sr)!=-1){ System.out.println(sr); } in.close(); } catch (Exception e) { e.printStackTrace(); } } }
输出结果:
缓冲流:
BufferedReader 父类 Reader
BufferedWriter 父类 Writer
BufferedReader 构造函数 BufferedReader(Reader in)
BufferedWriter 构造函数 BufferedWriter(Writer out)
BufferedReader流能读取文本行,方法是readLine()
可以把BufferedReader和BufferedWriter称作为上层流,把他们指向的字符流称作为底层流。Java采用缓存技术将上层流和底层流连接。底层字符输入流首先将数据读入缓存,BufferedReader流再从缓存读取数据;BufferedWirter流将数据写入缓存,底层字符输出流会不断地将缓存中的数据写到目的地。
缓冲流实例:
package study; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; public class study2 { public static void main(String[] args){ File file = new File("student.txt"); String content[]={"商品列表","樱桃:10元/斤","草莓:5/斤","芒果:8/斤"}; try { BufferedWriter out = new BufferedWriter( new FileWriter(file)); for(String str:content){ out.write(str); out.newLine(); } out.close(); BufferedReader in = new BufferedReader( new FileReader(file)); String s = null; while((s=in.readLine())!=null){ System.out.print(s); } } catch (Exception e) { e.printStackTrace(); } } }
输出结果:
原文地址:http://blog.csdn.net/uckyk/article/details/45896713