Java学習ノートの入出力ストリーム(一)File、ファイルバイトストリーム、ファイル文字ストリーム

7881 ワード

以下はブロガーがjavaを学んだときに覚えたメモです.
Fileクラス
 
Fileオブジェクトの作成方法は、次の3つです.
File(String filename);
File(String directoryPath,String filename);
File(File f,String filename);
 
ファイルのプロパティ
 
public String getName();ファイルの名前を取得
public boolean canRead();ファイルが読み取り可能かどうかを判断する
public boolean canWrite();ファイルを書き込み可能かどうかを判断する
public boolean exists();ファイルが存在するかどうかを判断する
public long length();取得ファイルの長さ
public String getAbsolutePath();ファイルの絶対パスの取得
public String getParent();ファイルの親ディレクトリの取得
public boolean isFile();ファイルがディレクトリではなく通常のファイルであるかどうかを判断します.
public boolean isDirectory(); ファイルがディレクトリであるかどうかを判断する
public boolean idHidden();ファイルが非表示かどうかを判断する
public long lastModified(); ファイルの最後の変更時間(ミリ秒数)を取得
 
例:
package com.File_1;

import java.io.*;

public class Lianxi {

public static void main(String[] args) {

// TODO Auto-generated method stub

File file = new File("e:\\heool.txt");

System.out.println(" :"+file.getAbsolutePath());

System.out.println(" :"+file.getName());

System.out.println(" :"+file.length());

System.out.println(" "+file.getPath());

File f = new File("e:\
ihao\
ana.txt"); File fi = new File("e:\
ihao"); // if(!fi.isDirectory()){ fi.mkdir(); // } else{ System.out.println(" !"); } if(!f.exists()){ try { f.createNewFile(); // } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else{ System.out.println(" !"); } //File fi = new File("f:\\ "); //if(!fi.exists()){ //fi.mkdir(); //} //else{ //System.out.println(" !"); //} } }

答え:
 :e:\heool.txt

 :heool.txt

 :0

 e:\heool.txt

 !

 !

 
目次
 
Fileオブジェクト呼び出しメソッドpulic boolean mkdir()はディレクトリを作成し、作成に成功するとtrueを返し、そうでない場合falseを返します(ディレクトリが存在する場合falseを返します).
 
Fileオブジェクトがディレクトリである場合、オブジェクトは、ディレクトリの下にあるファイルとサブディレクトリをリストする方法を呼び出すことができます.
public String[] list();ディレクトリの下にあるすべてのファイルを文字列で返す
public File[] listFiles();ディレクトリの下にあるすべてのファイルをFileオブジェクト形式で返す
 
ディレクトリの下に指定したタイプのファイルをリストする必要がある場合があります.Fileクラスの次のメソッドを呼び出すことができます.
public String[] list(FilenameFilter obj); ディレクトリの下で指定した烈性のすべてのファイルを文字列で返します.
public File[] listFiles();ディレクトリの下で指定したタイプのすべてのファイルをFileオブジェクト形式で返します.
 
上記2つの方法のパラメータFilenameFilterは、1つの方法を有するインターフェースである.
public boolean accept(File dir,String name);
 
例:
/**

 * ".txt" , 

 */

package com.File_1;

 

import java.io.*;

public class nihao {

public static void main(String []args){

File file = new File("e:\\ ");

if(file.isDirectory()){

Filefilr fil = new Filefilr();

String fileName[] = file.list(fil);

for(String s:fileName){

System.out.println(s);

}

}

}

}

class Filefilr implements FilenameFilter{

public boolean accept(File dir,String name){        // 

return name.endsWith(".txt");       // name ".txt" true

}

}

答え:
heool.txt

nana.txt
 
ファイルの作成と削除
public boolean createNewFile(); 新しいファイルを作成
public boolean delete(); 現在のファイルを削除
 
実行可能プログラムの実行
ローカルマシン上の実行可能ファイルを実行する場合はjavaを使用することができる.langパッケージのRuntimeクラス.まずRuntimeクラスを使用してオブジェクトを宣言します.例:
Runtime ec;
次に、このクラスのgetRuntime()スタティックメソッドを使用してオブジェクトを作成します.
Runtime ec = Runtime.getRuntime();
ecはexec(String command)メソッドを呼び出してローカルマシン上の実行可能ファイルを開くか、操作を実行することができる.
例:
/**

*  Runtime, 

*/

package com.File_1;

 

import java.io.*;

 

public class Openexe {

public static void main(String[] args) {

// TODO Auto-generated method stub

try{

Runtime ce = Runtime.getRuntime();

ce.exec("f:\\ \\QQ8.1_v8.1.17202.0.exe");

}

catch(Exception e){

System.out.println(e);

}

//**********************************************************************

                      // =_=

//**********************************************************************

//try{

//Runtime ce = Runtime.getRuntime();

//File file = new File("f:\\ \\QQ8.1_v8.1.17202.0.exe");

//ce.exec(file.getAbsolutePath());

//}

//catch(Exception e){

//System.out.println(e);

//}

}

 

}

 
ファイルバイトストリーム(例外処理が必要)
ファイルに対するプログラムの操作が簡単な場合は、FileInputStreamクラスとFileOutputStreamクラスで作成されたストリームを使用してファイルの読み取り/書き込みを行うことができます.
ファイルバイト入力ストリーム
FileInputStreamクラスオブジェクトの作成方法:
FileInputStream(String name);
FileInputStream(File file);
read()メソッドを呼び出すことによってプログラム中のデータを読み出す.
ファイルバイト入力ストリームは、read()メソッドの順番の読み出し元の単一バイトデータを呼び出し、このメソッドはバイト値(0~255の整数)を返し、ファイルの末尾に読み出すと、このメソッドは-1を返す.
int read(byte b[]);
int read(byte b[],int off,int len);
lenバイトを読み出し、バイト配列b[]のoff番目の位置から格納を開始する.
例:
/**

 *  

 */

package com.File_1;

 

import java.io.*;

 

public class wenjianzifchuruliu {

 

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

// TODO Auto-generated method stub

File file = new File("d:\\rrr.txt");

FileInputStream fis = new FileInputStream(file);

byte b[] = new byte[1024];

int n = 0;

while((n=fis.read(b))!=-1){

String s = new String(b,0,n);

System.out.println(s);

}

fis.close();

}

 

}

答え:
nihao

dajiahao

jaj

hiuhf

oiuljl

ljhkfs

 
バイト出力ストリーム
FileOutputStreamクラスで作成されたオブジェクトはファイルバイト出力ストリームと呼ばれ、ファイルバイト出力ストリームは基本的なファイル書き込み能力を提供します.
FileOutputStream(String name);
FileOutputStream(File file);
write(byte b[]); ファイルにバイト単位で順番にデータを書き込む
FileOutputStreamストリームの宛先がファイルであるため、ファイル出力ストリーム呼び出しwrite(byte b[])メソッドはバイトをファイルに書き込む.
public void write(byte b[]);
public void write(byte b[],int off,int len);
FileOutputStreamストリームに書き込むファイルが存在しない場合、ストリームはまずファイルを作成し、ファイルに内容のように書きます.
例:
/**

 *  "d:\\xunleixiazai.txt" , FileOutputStream 

 */

package com.File_1;

 

import java.io.*;

 

import com.Stringbuffer.buffer;

 

public class Fileoutputstream {

 

public static void main(String[] args) {

// TODO Auto-generated method stub

File file = new File("d:\\xunleixiazai.txt");

byte b[] = " , ?".getBytes();

try {

FileOutputStream fos = new FileOutputStream(file);

fos.write(b);

System.out.println(new String(b));

fos.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}


}

 
ファイル文字ストリーム
文字入力ストリームFileReaderの構成方法は、次のとおりです.
FileReader(String filename);
FileReader(File filename);
 
int read(); 文字入力ストリームは、このメソッドを呼び出してソースから1文字を読み出す、このメソッドは、1つの整数(0~65535の整数)を返し、1つの文字が-1を返す場合に読み出す.
int read(char b[]);
int read(char b[],int off,int len);
文字入力ストリームと文字出力ストリームのreadおよびwriteメソッドでは、文字配列の読み取り/書き込みデータ、すなわち文字を基本単位としてデータを処理します.
文字出力ストリームFileWriterの構成方法は、次のとおりです.
FileWriter(String filename);
FileWriter(File filename);
 
void write(int n); 文字出力ストリームは、メソッドを呼び出してファイルに文字を書き込みます.
void write(char b[]);
void write(char b[],int off,int len);
 
例:
/**

 *  , , FileReader FileWriter 

 */

package com.File_1;

 

import java.io.*;

 

public class wenjainzifuliu {

 

public static void main(String[] args) {

// TODO Auto-generated method stub

File file = new File("e:\\hello.txt");

char s[] = " ,a good boy!".toCharArray();

try {

FileWriter fw = new FileWriter(file);

fw.write(s);

fw.close();

FileReader fr = new FileReader(file);

int n = 0;

char a[] = new char[1024];

while((n=fr.read(a))!=-1){

String str = new String(a);

System.out.println(str);

}

fr.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

答え:
 ,a good boy!