(五)文字ストリームの詳細

7075 ワード

1、文字ストリームでデータを書き込む
import java.io.FileWriter;
import java.io.IOException;

public class Demo1 {
public static void main(String[] args) throws IOException {

//           ,    :

        /*
         * 1.       ,       
         * 2.       ,      ,    Writer
         * 3.       ,                    FileWriter 
         */
        
//1.         ,                  
    
        FileWriter fw = new FileWriter("F:\\Demo1.txt");

        /*
         * "Demo1.txt"   
         *          
         *         
         */

//2.               

        fw.write("abcd");

        /*
         *                     
         *           
         *         
         *           
         */
        
//3.                   

        fw.flush();//             
        fw.write("ef");

//4.        

        fw.close();

        /*
         * close()          
         *                   
         *     flush()  
         */

}
}


2、文字ストリーム書き込み時の異常処理
以前のコードは異常を投げ出していましたが、
public static void main(String[] args) throws IOException {}

try_の使い方を説明しますcatch異常の処理:
import java.io.FileWriter;
import java.io.IOException;

public class Demo2 {
public static void main(String[] args) {

//        fw         ,          ,     fw      null

        FileWriter fw = null;

//  try       , catch   IO  

        try{
            fw = new FileWriter("F:\\Demo2.txt");
            fw.write("abcdefg");
        }catch(IOException e) {
            e.printStackTrace();
        }finally{

        /*
         * close()         
         *     finally  
         *            
         *       try_catch  
         */

            try{

        /*
         *       ,  fw = new FileWriter("Z:\\Demo2.txt");
         *    FileWriter      ,    FileNotFoundException  
         *       finally  close()    fw   ,  null.close();
         *     NullPointException  ,     if(fw!= null)   
         */
    
                if(fw!= null){
                fw.close();
                }
            }catch(IOException e){
                throw new RuntimeException("       ");
            }
        }
}   
}
     

3、ファイルの更新
前に強調したように、コードを実行するたびに新しい内容が上書きされ、
FileWriter fw = new FileWriter("F:\\Demo1.txt");
        /*
         * "Demo1.txt"   
         *          
         *         
         */


次に、ファイルの再書き込み方法について説明します.
import java.io.FileWriter;
import java.io.IOException;

public class Demo3 {
public static void main(String[] args) throws IOException {

//     

        FileWriter fw = new FileWriter("F:\\Demo1.txt",true);

//  true  ,                

        fw.write("ghizk");
        fw.close();

}
}


4、テキストファイルを読み取る——単一文字を読み取る
import java.io.FileReader;
import java.io.IOException;

public class Demo4 {
public static void main(String[] args) throws IOException {

//          

        /*
         * 1.       ,       
         * 2.       ,      ,    Reader
         * 3.       ,                    FileReader 
         */
        
//1.         ,                

        FileReader fr = new FileReader("F:\\Demo1.txt");//"Demo1.txt"   ,      

//2.                

        /*
         * read()        ,    (int)       ,    
         */

        int num;
        while((num=fr.read())!=-1){

        /*
         * read()           -1
         *    num   -1 ,    
         */

            System.out.print((char)num);// (int)         (char)     
        }
        
        fr.close();
        
}
}

5、テキストファイルを読み取る——文字を配列に読み込む
import java.io.FileReader;
import java.io.IOException;

public class Demo5 {
public static void main(String[] args) throws IOException  {

//          

        /*
         * 1.       ,       
         * 2.       ,      ,    Reader
         * 3.       ,                    FileReader 
         */
        
//1.         ,                

        FileReader fr = new FileReader("F:\\Demo1.txt");//"Demo1.txt"   ,      

//2.                

                char[] arr = new char[1024];//   1024 1024    , 10*1024
                int num;//           
                while((num=fr.read(arr))!=-1){//                
                    System.out.print(new String(arr,0,num));//     , println
                }

                fr.close();
        /*
         * read(char[] cbuf)  
         *        ,           
         *                  
         *                    num 
         *           
         */     
        
}
}


6、ファイルのコピー
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Demo6 {

/*
 *        Java  ,    :
 *                
 *               
 */

public static void main(String[] args) throws IOException {

//1.         ,                
        FileReader fr = new FileReader("E:\\javaWorkSpace\\Test\\src\\IO_Demo\\Demo5.java");
        FileWriter fw = new FileWriter("F:\\Demo5_Copy.java");
        
//2.        
        
        int num;
        while((num = fr.read())!=-1){
            fw.write(num);//      
        }
        
        fr.close();
        fw.close();

}
}

7、ファイルコピー時の異常処理
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Demo7 {
public static void main(String[] args) {

/*
 *         fw、fr         
 *           
 *      fw、fr      null
 */

        FileReader fr = null;
        FileWriter fw = null;

//  try     , catch   IO  
        
        try{
            fr = new FileReader("E:\\Demo4.java");
            fw = new FileWriter("F:\\Demo4_Copy.java");

//          
        
            char[] arr = new char[1024];
            int num;
            while((num = fr.read(arr))!=-1){
                fw.write(arr,0,num);
            }
            
        }catch(IOException e) {
            throw new RuntimeException("      ");
        }
        finally{

        /*
         * close()         
         *     finally  
         *            
         *       try_catch  
         */

            try{

        /*
         *       ,  fr = new FileReader("Z:\\Demo4.java");
         *    FileReader      ,    FileNotFoundException  
         *       finally  close()    fr   ,  null.close();
         *     NullPointException  ,     if(fr!= null)   
         */

                if(fr!= null){
                    fr.close();
                }
            }catch(IOException e){
                throw new RuntimeException("       ");
            }

            try{
                if(fw!= null){
                    fw.close();
                }
            }catch(IOException e){
                throw new RuntimeException("       ");
            }
            
        }
}
}

    :    ,    ,               ,    !             ↓↓↓