A. java如何獲取文件信息
File 類是對文件和文件夾的抽象,包含了對文件和文件夾的多種屬性和操作方法。File類的常用方法如下表:
返回
方法
說明
String getName 獲取文件名稱
String getParent 獲取文件的父路徑字元串
String getPath 獲取文件的相對路徑字元串
String getAbsolutePath 獲取文件的絕對路徑字元串
boolean exists 判斷文件或者文件夾是否存在
boolean isFile 判斷是不是文件類型
boolean isDirectory 判斷是不是文件夾類型
boolean delete 刪除文件或文件夾,如果刪除成功返回結果為true
boolean mkdir 創建文件夾,創建成功返回true
boolean setReadOnly 設置文件或文件夾的只讀屬性
long length 獲取文件的長度
long lastModified 獲取文件的最後修改時間
String[ ] list 獲取文件夾中的文件和子文件夾的名稱,並存放到字元串數組中
B. java如何獲取文件系
package com.kiritor.util;
import java.io.File;
import java.io.FileFilter;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* 文件的相關操作類
*
* @author Kiritor
*/
public class FileOperation {
private static String contentPath;
private static String filePath;
private static File[] fileList = null;// 保存文件列表,過濾掉目錄
public FileOperation() {
}
/** 構造函數的參數是一個目錄 */
public FileOperation(String path) {
File file = new File(path);
if (file.isDirectory())
this.contentPath = path;
else
this.filePath = path;
}
/**獲取文件列表*/
public static File[] getFiles() {
if (contentPath == null) {
File file = new File(filePath);
fileList = new File[1];
fileList[0] = file;
return fileList;
}
fileList = new File(contentPath).listFiles(new FileFilter() {
/**使用過濾器過濾掉目錄*/
@Override
public boolean accept(File pathname) {
if(pathname.isDirectory())
{
return false;
}else
return true;
}
});
return fileList;
}
/** 對當前目錄下的所有文件進行排序 */
public static File[] sort() {
getFiles();
Arrays.sort(fileList, new FileComparator());
return fileList;
}
public static void tree(File f, int level) {
String preStr = "";
for(int i=0; i<level; i++) {
preStr += " ";
}
File[] childs = f.listFiles();
//返回一個抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中的文件。
for(int i=0; i<childs.length; i++) {
System.out.println(preStr + childs[i].getName());
if(childs[i].isDirectory()) {
tree(childs[i], level + 1);
}
}
}
// 提供一個"比較器"
static class FileComparator implements java.util.Comparator<File> {
@Override
public int compare(File o1, File o2) {
// 按照文件名的字典順序進行比較
return o1.getName().compareTo(o2.getName());
}
}
}
C. Java讀取文件時如何每次都讀到最新的內容
用正則表達式即可,汝可用RandomAccessFile類或者一次Scanner後,累加字元串,再操作即可。汝可選也。
D. java如何查找指定目錄下的最新文件
這個Java類的作用是查找目錄文件中特定文件名的文件,並不是查找文件內容。具體代碼如下:
[java] view plain
package net.xsoftlab.ke;
import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.List;
//查找目錄下指定文件名的文件
public class TextSearchFile {
static int countFiles = 0;// 聲明統計文件個數的變數
static int countFolders = 0;// 聲明統計文件夾的變數
public static File[] searchFile(File folder, final String keyWord) {// 遞歸查找包含關鍵字的文件
File[] subFolders = folder.listFiles(new FileFilter() {// 運用內部匿名類獲得文件
@Override
public boolean accept(File pathname) {// 實現FileFilter類的accept方法
if (pathname.isFile())// 如果是文件
countFiles++;
else
// 如果是目錄
countFolders++;
if (pathname.isDirectory()
|| (pathname.isFile() && pathname.getName().toLowerCase().contains(keyWord.toLowerCase())))// 目錄或文件包含關鍵字
return true;
return false;
}
});
List<File> result = new ArrayList<File>();// 聲明一個集合
for (int i = 0; i < subFolders.length; i++) {// 循環顯示文件夾或文件
if (subFolders[i].isFile()) {// 如果是文件則將文件添加到結果列表中
result.add(subFolders[i]);
} else {// 如果是文件夾,則遞歸調用本方法,然後把所有的文件加到結果列表中
File[] foldResult = searchFile(subFolders[i], keyWord);
for (int j = 0; j < foldResult.length; j++) {// 循環顯示文件
result.add(foldResult[j]);// 文件保存到集合中
}
}
}
File files[] = new File[result.size()];// 聲明文件數組,長度為集合的長度
result.toArray(files);// 集合數組化
return files;
}
public static void main(String[] args) {// java程序的主入口處
File folder = new File("E:/");// 默認目錄
String keyword = "1231";
if (!folder.exists()) {// 如果文件夾不存在
System.out.println("目錄不存在:" + folder.getAbsolutePath());
return;
}
File[] result = searchFile(folder, keyword);// 調用方法獲得文件數組
System.out.println("在 " + folder + " 以及所有子文件時查找對象" + keyword);
System.out.println("查找了" + countFiles + " 個文件," + countFolders + " 個文件夾,共找到 " + result.length + " 個符合條件的文件:");
for (int i = 0; i < result.length; i++) {// 循環顯示文件
File file = result[i];
System.out.println(file.getAbsolutePath() + " ");// 顯示文件絕對路徑
}
}
}
E. java怎麼獲取文件夾下最新的文件
靠java自己的api不行,需要使用系統的api才行。
純java代碼的話,只能是定時檢測文件夾中的文件列表。為了快速檢測,可以把檢測到的新文件移到其他文件夾。