File
日本語 | 書類 |
英語 | file |
ふりがな | ふぁいる |
フリガナ | ファイル |
ファイルやディレクトリを扱うためのクラス。
J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名はjava.io.File。
1インスタンスで1ファイルもしくは1ディレクトリを対象とし、そのファイルの作成、削除、リネーム等を行うことができる。またディレクトリであればディレクトリ内のファイルを取得することもできる。
ファイルやディレクトリのパスの指定はコンストラクタで行う。その際、相対パスも絶対パスも渡すことができる。また、ファイル名とディレクトリパスの連結もコンストラクタで行う。
一度格納したパスはStringクラス同様、後で変更することはできない。つまりFileクラスの「インスタンスは不変」ということである。
また、そのパスが「存在しないパス」であっても例外等は投げられない。これは「存在しないパスでもこれから作る可能性がある」ためもあるが、それ以前に「Fileクラスはパスという文字列を格納するクラス」という側面が大きいためでもある。
Fileクラスをオブジェクト指向的に考えた場合には、「ファイルを示すクラス」ではなく「パスという文字列を格納するクラス」と考えた方がいいだろう。
J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名はjava.io.File。
1インスタンスで1ファイルもしくは1ディレクトリを対象とし、そのファイルの作成、削除、リネーム等を行うことができる。またディレクトリであればディレクトリ内のファイルを取得することもできる。
ファイルやディレクトリのパスの指定はコンストラクタで行う。その際、相対パスも絶対パスも渡すことができる。また、ファイル名とディレクトリパスの連結もコンストラクタで行う。
一度格納したパスはStringクラス同様、後で変更することはできない。つまりFileクラスの「インスタンスは不変」ということである。
また、そのパスが「存在しないパス」であっても例外等は投げられない。これは「存在しないパスでもこれから作る可能性がある」ためもあるが、それ以前に「Fileクラスはパスという文字列を格納するクラス」という側面が大きいためでもある。
Fileクラスをオブジェクト指向的に考えた場合には、「ファイルを示すクラス」ではなく「パスという文字列を格納するクラス」と考えた方がいいだろう。
参考サイト
// Sample.java
import java.io.File;
import java.io.IOException;
public class Sample
{
public static void main( String[] args )
{
// 以下のディレクトリでjavaコマンドを実行したとします。
// ・Windowsの場合
// D:\Sample\test
// ・UNIX系の場合
// /Sample/test
// カレントディレクトリにファイルを作ります。
// Eclipseで実行する場合には、プロジェクトの
// ディレクトリがカレントディレクトリになります。
File aFile = new File( "a.txt" );
try
{
aFile.createNewFile();
}
catch( IOException e )
{
// ファイルが作れなかったら例外が投げられます。
e.printStackTrace();
}
// カレントディレクトリの絶対パスを取得します。
String currentPath = System.getProperty( "user.dir" );
// カレントディレクトリのファイル一覧を取得します。
File dir = new File( currentPath );
String[] filenames = dir.list();
for( int iF1 = 0; iF1 < filenames.length; ++iF1 )
{
System.out.println( filenames[iF1] );
}
// .classpath
// .project
// a.txt
// bin
// src
// 注:当然上記は一例です。
// ただ、先ほど作ったa.txtファイルは残っています。
// インスタンスを作成したら、中のファイル名やパスは
// 変更できません。
// a.txtファイルを絶対パスで指す、Fileクラスの
// インスタンスを作成します。
File aAbsolutePath = new File( dir, aFile.getName() );
System.out.println( aAbsolutePath.getAbsolutePath() );
// ・Windowsでの実行結果
// D:\Sample\test\a.txt
// ・UNIX系での実行結果
// /Sample/test/a.txt
// ファイルを削除します。
aAbsolutePath.delete();
filenames = dir.list();
for( int iF1 = 0; iF1 < filenames.length; ++iF1 )
{
System.out.println( filenames[iF1] );
}
// .classpath
// .project
// bin
// src
// a.txtファイルがなくなりました。
}
}
import java.io.File;
import java.io.IOException;
public class Sample
{
public static void main( String[] args )
{
// 以下のディレクトリでjavaコマンドを実行したとします。
// ・Windowsの場合
// D:\Sample\test
// ・UNIX系の場合
// /Sample/test
// カレントディレクトリにファイルを作ります。
// Eclipseで実行する場合には、プロジェクトの
// ディレクトリがカレントディレクトリになります。
File aFile = new File( "a.txt" );
try
{
aFile.createNewFile();
}
catch( IOException e )
{
// ファイルが作れなかったら例外が投げられます。
e.printStackTrace();
}
// カレントディレクトリの絶対パスを取得します。
String currentPath = System.getProperty( "user.dir" );
// カレントディレクトリのファイル一覧を取得します。
File dir = new File( currentPath );
String[] filenames = dir.list();
for( int iF1 = 0; iF1 < filenames.length; ++iF1 )
{
System.out.println( filenames[iF1] );
}
// .classpath
// .project
// a.txt
// bin
// src
// 注:当然上記は一例です。
// ただ、先ほど作ったa.txtファイルは残っています。
// インスタンスを作成したら、中のファイル名やパスは
// 変更できません。
// a.txtファイルを絶対パスで指す、Fileクラスの
// インスタンスを作成します。
File aAbsolutePath = new File( dir, aFile.getName() );
System.out.println( aAbsolutePath.getAbsolutePath() );
// ・Windowsでの実行結果
// D:\Sample\test\a.txt
// ・UNIX系での実行結果
// /Sample/test/a.txt
// ファイルを削除します。
aAbsolutePath.delete();
filenames = dir.list();
for( int iF1 = 0; iF1 < filenames.length; ++iF1 )
{
System.out.println( filenames[iF1] );
}
// .classpath
// .project
// bin
// src
// a.txtファイルがなくなりました。
}
}
// Sample.java import java.io.File; import java.io.IOException; public class Sample { public static void main( String[] args ) { // 以下のディレクトリでjavaコマンドを実行したとします。 // ・Windowsの場合 // D:\Sample\test // ・UNIX系の場合 // /Sample/test // カレントディレクトリにファイルを作ります。 // Eclipseで実行する場合には、プロジェクトの // ディレクトリがカレントディレクトリになります。 File aFile = new File( "a.txt" ); try { aFile.createNewFile(); } catch( IOException e ) { // ファイルが作れなかったら例外が投げられます。 e.printStackTrace(); } // カレントディレクトリの絶対パスを取得します。 String currentPath = System.getProperty( "user.dir" ); // カレントディレクトリのファイル一覧を取得します。 File dir = new File( currentPath ); String[] filenames = dir.list(); for( int iF1 = 0; iF1 < filenames.length; ++iF1 ) { System.out.println( filenames[iF1] ); } // .classpath // .project // a.txt // bin // src // 注:当然上記は一例です。 // ただ、先ほど作ったa.txtファイルは残っています。 // インスタンスを作成したら、中のファイル名やパスは // 変更できません。 // a.txtファイルを絶対パスで指す、Fileクラスの // インスタンスを作成します。 File aAbsolutePath = new File( dir, aFile.getName() ); System.out.println( aAbsolutePath.getAbsolutePath() ); // ・Windowsでの実行結果 // D:\Sample\test\a.txt // ・UNIX系での実行結果 // /Sample/test/a.txt // ファイルを削除します。 aAbsolutePath.delete(); filenames = dir.list(); for( int iF1 = 0; iF1 < filenames.length; ++iF1 ) { System.out.println( filenames[iF1] ); } // .classpath // .project // bin // src // a.txtファイルがなくなりました。 } }
「みだし」に含まれているページ
「解説」に含まれているページ
「サンプルプログラムとか」に含まれているページ
- ..
- close
- EOF
- EOFException
- File
- FileInputStream
- FileNotFoundException
- FileOutputStream
- FileReader
- FileWriter
- IOException
- java.io
- JAVA_HOME
- Logger
- Properties
- Serializable
- transient
- ZIP
- カレントディレクトリ
- システムプロパティ
- スタックトレース
- テキストファイル
- ディレクトリ
- ディレクトリトラバーサル
- ハンドラ
- バイト入力ストリーム
- バイト出力ストリーム
- バイナリーファイル
- パス
- ファイル
- ファイル区切り文字
- プロパティファイル
- リネーム
- ログファイル
- 改行文字
- 文字入力ストリーム
- 文字出力ストリーム
- 直列化
- 相対パス
- 絶対パス