Java IO(input output)流<一>

一.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 }

运行结果

原文地址:https://www.cnblogs.com/3WWanXiang/p/4572001.html