IOストリーム-FileUtilsの使用(11)
-
FileUtilsクラスで一般的に使用されるメソッド:
- cleanDirectory:ディレクトリを空にしますが、ディレクトリは削除しないでください
- contentEquals:2つのファイルの内容が同じかどうかを比較します
- copyDirectory:あるディレクトリの内容を別のディレクトリにコピーします。コピーする必要のあるファイルは、FileFilterでフィルタリングできます
- copyFile:ファイルを新しいアドレスにコピーします
- copyFileToDirectory:ファイルをディレクトリにコピーします。
- copyInputStreamToFile;入力ストリームの内容をファイルにコピーします。
- copyFile:ファイルを新しいアドレスにコピーします。
- copyFileToDirectory:ファイルをディレクトリにコピーします。
- copyInputStreamToFile:入力ストリームのコンテンツをファイルにコピーします
- deleteDirectory:ディレクトリを削除します
- deleteQuietly:ファイルを削除します
- listFiles:指定されたディレクトリ内のすべてのファイルを一覧表示します
- openInputStream:指定されたファイルの入力ストリームを開きます
- readFileToString:ファイルの内容を文字列として返します
- readLines:ファイルの内容を1行ずつ文字列配列に返します
- size:ファイルまたはディレクトリのサイズを返します
- 書き込み:ファイル文字列の内容をファイルに直接書き込みます
- writeByteArrayToFile:バイト配列の内容をファイルに書き込みます
- writeLines:コンテナ内の要素のtoStringメソッドによって返されるコンテンツは、ファイルに順番に書き込まれます。
-
FileUtilsクラスの1つを使用します。
import org.apache.commons.io.FileUtils; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; public class FileUtilsDemo01 { public static void main(String[] args)throws Exception { //将字节流转字符流当中,也有utf-8指定编码格式 //new InputStreamReader(new FileInputStream("d:/sxt.txt"),"utf-8"); //将文件内容作为字符串输出 String content= FileUtils.readFileToString(new File("d:/sxt.txt"),"utf-8");//utf-8指定编码格式 System.out.println(content); //现在我们读取文本文件一行就搞定了,比java.io提供的流对象更加方便、简洁 } }
-
FileUtilsクラス2の使用:
import org.apache.commons.io.FileUtils; import java.io.File; import java.io.FileFilter; public class FileUtileDemo2 { public static void main(String[] args)throws Exception { //将一个目录内容拷贝到另一个目录,可以通过FileFilter过滤需要拷贝的文件 //new File("d:/a")拷贝文件的源位置,new File("c:/a")拷贝文件的目的位置,FileFilter接口过滤需要拷贝的文件 FileUtils.copyDirectory(new File("d:/a"), new File("c:/a"), new FileFilter() { //在文件拷贝时的过滤条件 @Override public boolean accept(File pathname) { if (pathname.isDirectory()||pathname.getName().endsWith("html")){ //只拷贝目录和html文件 return true; } return false; } }); } }
-
IOUtilsの使用
一般的に使用されるいくつかの方法:
- バッファ方式:着信ストリームをバッファリングされたストリームにラップします。そして、あなたはパラメータを通してバッファのサイズを指定することができます
- closeQueitlyメソッド:ストリームを閉じます
- contentEqualsメソッド:2つのストリームのコンテンツが一貫しているかどうかを比較します
- copyメソッド:入力ストリームのコンテンツを出力ストリームにコピーし、文字エンコードを指定できます
- copyLargeメソッド:入力ストリームのコンテンツを出力ストリームにコピーします。これは、2Gより大きいコンテンツのコピーに適しています。
- lineIteratorメソッド:各行の内容を反復処理できるイテレータを返します
- readメソッド:入力ストリームのコンテンツの一部をバイト配列に読み込みます
- readFullyメソッド:入力ストリームのすべての内容をバイト配列に読み込みます
- readLineメソッド:入力ストリームのコンテンツの行を読み取ります
- toBufferedInputStream、toBufferedReader:入力をバッファリングされた入力ストリームに変換します
- toByArray、toCharArray:入力ストリームのコンテンツをバイト配列と文字配列に変換します
- toString:入力ストリームまたは配列のコンテンツを文字列に変換します
- writeメソッド:ストリームにコンテンツを書き込みたい
- writeLineメソッド:ストリームにコンテンツの行を書き込みたい
-
IOUtilsの具体的な実現
import org.apache.commons.io.IOUtils; import java.io.FileInputStream; public class IOUtilsDemo { public static void main(String[] args)throws Exception { //用IOUtils类中的toString方法,将一个字节输入流转换成字符串 String content=IOUtils.toString(new FileInputStream("d:/sxt.txt"),"utf-8"); System.out.println(content); } }