一.IO流概述
1.IO流是用来在设备之间的数据传输。
2.Java中对数据的操作是按流的方式进行的。
3.分类:
1)按操作的数据:字节流(早期就有,可传送任何数据)和字符流(ASCII码表,Unicode码表<两字节>)。
2)按流向:输入流和输出流。
4.抽象基类
1)字节流:InputStream,OutputStream
2)字符流:Reader,Writer
二.IO流实例
1.FileWriter类实例
1 //新建一个Filewriterdemo类 2 import java.io.*; 3 4 public class FilewriterDemo { 5 6 public static void main(String []args) throws IOException{ 7 //新建一个FileWriter类,新建了一个文件text.txt 8 FileWriter fw=new FileWriter("test.txt"); 9 //向内存中写入数据,仅写在了内存中 10 fw.write("abcde"); 11 //刷新数据,将数据写入文件中 12 fw.flush(); 13 //可以无限写入 14 fw.write("haha"); 15 16 fw.flush(); 17 //刷新在关闭 18 fw.close(); 19 } 20 }
运行结果
2.IO异常
1 //新建一个Filewriterdemo类 2 import java.io.*; 3 4 public class FilewriterDemo { 5 6 public static void main(String []args) { 7 //在try外定义类 8 FileWriter fw=null; 9 10 try{ 11 //初始化 12 fw=new FileWriter("test.txt"); 13 14 fw.write("abcde"); 15 } 16 17 catch(IOException e){ 18 19 System.out.println(e.toString()); 20 } 21 //在处理异常时尽量将关闭的数据流放入finally 22 finally{ 23 24 try { 25 //如果有多个,则要使用多个判断,且不可放在一个中,如: 26 //if(fw!==null&&fw==“”)等 27 if(fw!=null) 28 29 fw.close(); 30 31 } catch (IOException e) { 32 33 System.out.println(e.toString()); 34 } 35 } 36 } 37 }
3 FileRead类实例
3.1一次一个字符读
1 import java.io.*; 2 public class FileRead { 3 4 public static void main(String[] args) throws IOException{ 5 //新建一个FileReader类 6 FileReader fd=new FileReader("test.txt"); 7 //当从一个文件中读取数据时,在数据最后会返回一个int型-1来表示结束 8 int ch=0; 9 while((ch=fd.read())!=-1){ 10 System.out.println("ch="+(char)ch); 11 } 12 /* 13 while(true){ 14 int ch=fd.read(); 15 //当ch=-1时推出循环 16 if(ch==-1) 17 break; 18 //输出读到的数据并 强制转化为char类型 19 System.out.println("ch="+(char)ch); 20 } 21 */ 22 //关闭数据流 23 fd.close(); 24 25 } 26 27 }
3.2从数组中读
1 import java.io.*; 2 3 public class FileReadStr { 4 5 public static void main(String[] args) throws IOException{ 6 7 FileReader fd=new FileReader("test.txt"); 8 //在用数组读数据时,一般将数组定义为1024倍数 9 char []buf=new char[1024]; 10 int num=0; 11 while((num=fd.read(buf))!=-1){ 12 //从数组的第一个开始到最后一个结束 13 System.out.println(new String(buf,0,num)); 14 } 15 16 fd.close(); 17 } 18 19 }
运行结果