自己投資の一つとしてチャレンジしている Programming の Java の独習状況を Blog で公開しています。今回は java.io.File を使ってファイルのプロパティを確認する方法について紹介します。
——————————————————-
▼1. ファイルのプロパティについて
——————————————————-
Windows OS ではファイルを右クリックしプロパティを選択すると、ファイルの種類、サイズ、更新日時など確認できます。同様の動作を java.io.File Class で実装して (動かして) みます。
——————————————————-
▼2. ファイルのプロパティの表示
——————————————————-
2.1. 事前準備: SLF4J を利用しているので前回の下記 blog を参照し設定してください。
Java SLF4J – Hello World No1-2020/04
https://www.kumoman.net/site/2020/04/12/javaslf4j-helloworldno1-20200411/
2.2. Maven を使った IntelliJ のプロジェクトで Java の class を作成します。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
public class readwritefiles {
private static final Logger log = LoggerFactory.getLogger(readwritefiles.class);
public static void main(String... args){
File file = new File("/var/log/syslog");
printFileProperty(file);
}
private static void printFileProperty(File fi) {
if (fi.exists()) {
log.info("List File Property:");
log.info("AbsoluteFile : {}", fi.getAbsoluteFile() );
log.info("Parent : {}", fi.getParent());
log.info("Name : {}", fi.getName());
log.info("Type : {}", fi.isFile() ? "file" : "directory or symbolic Link");
log.info("Is Hidden : {}", fi.isHidden());
log.info("Is Readable : {}", fi.canRead());
log.info("Is Writable : {}", fi.canWrite());
log.info("Last modified : {}", fi.lastModified() );
double kilobytes = fi.length() / 1024;
log.info("Size : {} KB", kilobytes);
System.out.println("Name (println): " + fi.getName() + "\n");
}
}
}2.3. プログラムを実行すると以下の結果が返ります。
最後の行 Name (println): syslog は、 log.info を利用せず、System.out.println で出力しています。
[main] INFO readwritefiles - List File Property: [main] INFO readwritefiles - AbsoluteFile : /var/log/syslog [main] INFO readwritefiles - Parent : /var/log [main] INFO readwritefiles - Name : syslog [main] INFO readwritefiles - Type : file [main] INFO readwritefiles - Is Hidden : false [main] INFO readwritefiles - Is Readable : true [main] INFO readwritefiles - Is Writable : false [main] INFO readwritefiles - Last modified : 1586751055362 [main] INFO readwritefiles - Size : 31.0 KB Name (println): syslog
————————————-
▼3. 参考情報
————————————-
java.io Class File https://docs.oracle.com/javase/7/docs/api/java/io/File.html
以上です。参考になりましたら幸いです。