(五)文字ストリームの詳細
7075 ワード
1、文字ストリームでデータを書き込む
2、文字ストリーム書き込み時の異常処理
以前のコードは異常を投げ出していましたが、
try_の使い方を説明しますcatch異常の処理:
3、ファイルの更新
前に強調したように、コードを実行するたびに新しい内容が上書きされ、
次に、ファイルの再書き込み方法について説明します.
4、テキストファイルを読み取る——単一文字を読み取る
5、テキストファイルを読み取る——文字を配列に読み込む
6、ファイルのコピー
7、ファイルコピー時の異常処理
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(" ");
}
}
}
}
: , , , ! ↓↓↓