在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据时要使用输入流读取数据,而当程序需要将一些数据保存起来时,就要使用输出流。
在java.io包中流的操作主要有字节流、字符流两大类,两类都有输入和输出操作。
在字节流中输出数据主要使用OutputStream类完成,输入使用的是InputStream类。
在字符流中输出主要使用Writer类完成,输入主要使用Reader类完成。
1、字节输出流
1 import java.io.File; 2 import java.io.FileOutputStream; 3 import java.io.OutputStream; 4 5 public class FileDemo{ 6 public static void main(String[] args) throws Exception 7 { 8 String path="G:"+File.separator+"javaExercise"+File.separator+"test.txt"; 9 File f=new File(path); 10 11 OutputStream out=null; 12 out =new FileOutputStream(f); 13 String str="Hello World"; 14 byte b[]=str.getBytes(); 15 16 out.write(b); 17 out.close(); 18 } 19 }
2、字节输入流
1 import java.io.File; 2 import java.io.FileInputStream; 3 import java.io.InputStream; 4 5 public class FileDemo{ 6 public static void main(String[] args) throws Exception 7 { 8 String path="G:"+File.separator+"javaExercise"+File.separator+"test.txt"; 9 File f=new File(path); 10 11 InputStream input=null; 12 input =new FileInputStream(f); 13 14 byte b[]=new byte[1024]; 15 16 input.read(b); 17 18 System.out.println("内容为: "+new String(b)); 19 input.close(); 20 } 21 }
3、字符输出流
1 import java.io.File; 2 import java.io.FileWriter; 3 import java.io.Writer; 4 5 public class FileDemo{ 6 public static void main(String[] args) throws Exception 7 { 8 String path="G:"+File.separator+"javaExercise"+File.separator+"test1.txt"; 9 File f=new File(path); 10 Writer out=null; 11 out =new FileWriter(f); 12 String str="hello world"; 13 out.write(str); 14 out.close(); 15 } 16 }
整个程序与OutputStream的操作流程并没有太大区别,唯一的好处是,可以直接输出字符串,而不用将字符串变为byte数组后再输出。
4、字符输入流
1 import java.io.File; 2 import java.io.FileReader; 3 import java.io.Reader; 4 5 public class FileDemo{ 6 public static void main(String[] args) throws Exception 7 { 8 String path="G:"+File.separator+"javaExercise"+File.separator+"test1.txt"; 9 File f=new File(path); 10 Reader reader=null; 11 reader=new FileReader(f); 12 char c[]=new char[1024]; 13 int len=reader.read(c); 14 reader.close(); 15 System.out.println("内容为: "+new String(c,0,len)); 16 } 17 }