當前位置:首頁 » 編程語言 » java搜索文件

java搜索文件

發布時間: 2022-08-27 02:58:33

java 如何在指定文件夾下查找文件

Windows下JAVA環境變數的設置祥解
Windows下JAVA用到的環境變數主要有3個,JAVA_HOME、CLASSPATH、PATH。下面逐個分析。
JAVA_HOME指向的是JDK的安裝路徑,如x:\JDK_1.4.2,在這路徑下你應該能夠找到bin、lib等目錄。值得一提的是,JDK的安裝路徑可以選擇任意磁碟目錄,不過建議你放的目錄層次淺一點,如果你放的目錄很深,比如x:\XXXXXX\xxxxx\XXXX\xxxx\XXXX\xxxx\XXXX\xxx……
那麼,下面的步驟和以後的應用你都要受累了,呵呵。設置方法:
JAVA_HOME=x:\JDK_1.4.2
PATH環境變數原來Windows裡面就有,你只需修改一下,使他指向JDK的bin目錄,這樣你在控制台下面編譯、執行程序時就不需要再鍵入一大串路徑了。設置方法是保留原來的PATH的內容,並在其中加上%JAVA_HOME%\bin
(注,如果你對DOS批處理不了解,你可能不明白%%引起來的內容是什麼意思;其實這里是引用上一步設定好的環境變數JAVA_HOME,你寫成x:\JDK_1.4.2也是可以的;你可以打開一個控制台窗口,輸入echo
%JAVA_HOME%來看一下你的設置結果) :
PATH=%JAVA_HOME%\bin;%PATH%
同樣,%PATH%是引用以前你設置的PATH環境變數,你照抄以前的值就行了。
CLASSPATH環境變數我放在最後面,是因為以後你出現的莫名其妙的怪問題80%以上都可能是由於CLASSPATH設置不對引起的,所以要加倍小心才行。
CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar
首先要注意的是最前面的".\;",如果你看不清,我給你念念——句點反斜杠分號。這個是告訴JDK,搜索CLASS時先查找當前目錄的CLASS文件——為什麼這樣搞,這是由於LINUX的安全機制引起的,LINUX用戶很明白,WINDOWS用戶就很難理解(因為WINDOWS默認的搜索順序是先搜索當前目錄的,再搜索系統目錄的,再搜索PATH環境變數設定的)
,所以如果喜歡盤根究底的朋友不妨研究一下LINUX。
為什麼CLASSPATH後面指定了tools.jar這個具體文件?不指定行不行?顯然不行,行的話我還能這么羅索嘛!:)
這個是由java語言的import機制和jar機制決定的,你可以查資料解決。

呵呵,具體的設定方法: win2k\xp用戶右鍵點擊我的電腦->屬性->高級->環境變數,修改下面系統變數那個框里的值就行了。
win9x用戶修改autoexec.bat文件,在其末尾加入:
set JAVA_HOME=x:\JDK_1.4.2
set PATH=%JAVA_HOME%\bin;%PATH%
set CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar

㈡ 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() + " ");// 顯示文件絕對路徑
}
}
}

㈢ java 快速查找100G的文件

有一個100G大小的文件里存的全是數字,而且每一個數字見用逗號隔開。如今在這一大堆數字中找出100個最大的數出來。
使用Files類將文件的所有內容讀入位元組數組。Files類還有一個方法可以讀取所有行到字元串列表。Files類是在Java 7中引入的,如果想載入所有文件內容,使用這個類是比較適合的。
只有在處理小文件並且需要載入所有文件內容到內存中時才應使用此方法。

㈣ java 文件搜索程序

import java.io.File;
import java.io.FileFilter;

public class SearchFile {
private static final class OnlyFile implements FileFilter {
public boolean accept(File pathname) {
if (pathname.isFile()) {
return true;
} else {
return false;
}
}
}

public static void main(String[] args) {
if (args.length != 2) {
System.out.println("使用說明:請輸入java SearchFile 目錄 文件名");
} else {
File file = new File(args[0]);
File[] files = file.listFiles(new OnlyFile());
for (File f : files) {
if (f.getName().contains(args[1])) {
System.out.println(f.getPath());
}
}
}
}
}

//注意路徑名不能有空格

㈤ 我想編一個JAVA程序,根據給定的文件名去搜索該文件。JAVA中有什麼類的方法是可以搜索文件的求指教。

操作文件用IO啊,遍歷文件列表,然後把符合條件的保存下來,如果你想做強大點,比如像網路一樣的話,建議你去學習下Lucene框架,那速度可不是一般的驚人啊,Oracle都無法跟他匹敵!

㈥ java的文件搜索問題

import java.io.*;

public class FindFile{
public static final String FILE_DIR = "C:\\"; //要搜索的文件夾
public static void main(String[] args){
File dir = new File(FILE_DIR);
String[] availableDataFiles = dir.list(new FilenameFilterImpl()); //得到所有符合要求的文件
for(String f : availableDataFiles) { //循環處理每個文件
File aFile = new File(FILE_DIR + f);
System.out.println(aFile.toString()); //做你要的處理,比如列印文件內容等。這里只是列出文件路徑。
}
}

//這個類用來判斷搜索到的文件是不是符合要求
private static class FilenameFilterImpl implements FilenameFilter {
public FilenameFilterImpl() {
}

public boolean accept(File dir, String name) {
return name.matches(".*\\.txt"); //正則表達式。只有.txt文件符合要求。
}
}

}

㈦ java如何在桌面搜索一個應用

(1)在你的控制台裡面,跑到你.java文件的根目錄底下,Javac xxx.java看能不能編譯出.class文件,可以的話繼續。
(2)在控制台輸入以下命令:javac -d c:\文件夾名 xxx.java把這個包存放在c盤下。
(3)在c盤這個文件夾裡面。新建一個txt文件,輸入以下內容:Main-Class:包名.類名,然後回車保存。
(4)再在控制台裡面輸入一下命令:jar -cvfm my.jar xx.txt 類名即可。
(5)在文件夾底下就會生成一個jar的文件,點開即可,不用再在Eclipse裡面跑了。
(6)要是認為生成的圖標不太好看,可以在文件夾選項中添加文件類型,增加一個.jar文件,將圖標選成一個你喜歡的圖標即可
(7)這個是我做的第一個Java桌面應用

㈧ JAVA 搜索目錄下符合條件的文件

不是因為搜索量太大,而多半是因為許可權問題。具體函數是listFiles。函數說明了,如果遇到IO錯誤將返回null,而你的報錯是處理null,所以你這里肯定是遇到了IO錯誤。之前能用isDirectory,不大可能是磁碟錯誤或者邏輯錯誤,就只剩下許可權問題了。Win下有好些目錄是沒有列表許可權的,原因是那些目錄本身是為了兼容老版本的Win而存在的目錄鏈接;存在的意義在於可以通過老版本Win訪問文件的方式來訪問新版本Win里的文件,因為是目錄鏈接,所以文件實際在新目錄里;而老版本目錄不讓列舉文件的原因是如果允許列舉,遇到像你這樣的搜索,處在新目錄里的文件就會被找到兩次(通過舊目錄鏈接和通過新目錄直接找到)。還有回收站相關的文件和System Volume Information目錄相關的也有很多默認不能打開的目錄,因為這些不是普通的用戶文件。
所以處理一下listFiles的結果就行了。輸出不能訪問的提示。至於搜索量,報錯也是或者StackOverflowError,所以直接輸出別先保存在數組里吧,這樣也讓不能訪問而報錯時的輸出連續一點。Pattern先compile在matcher可以提高效率。
import java.io.File;
import java.util.regex.Pattern;

public class Search {
public static void search(File folder, Pattern regex) {
File[] files = folder.listFiles();
if (files == null) {
System.err.println("不能訪問" + folder.getAbsolutePath());
return;
}
for(File file : files) {
if(file.isDirectory()) {
search(file, regex);
} else {
if (regex.matcher(file.getName()).matches()) {
System.out.println(file.getAbsolutePath());
}
}
}
}
public static void search(String path, String regex) {
search(new File(path), Pattern.compile(regex));
}
public static void main(String[] args) {
Search.search("C:\\Users", ".*\\.mp3");
}
}

㈨ java 查找一個TXT文件內容。

1、定義讀取txt文件的目錄路徑

2、通過 File文件流逐行讀取文件內容

--

直接通過文件流來讀取txt文件的內容,但有時可能會出現亂碼!此時只要設置一下文件字元編碼即可

importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;

publicclasstxttest{
/**
*讀取txt文件的內容
*@paramfile想要讀取的文件對象
*@return返迴文件內容
*/
publicstaticStringtxt2String(Filefile){
Stringresult="";
try{
BufferedReaderbr=newBufferedReader(newFileReader(file));//構造一個BufferedReader類來讀取文件
Strings=null;
while((s=br.readLine())!=null){//使用readLine方法,一次讀一行
result=result+" "+s;
}
br.close();
}catch(Exceptione){
e.printStackTrace();
}
returnresult;
}

publicstaticvoidmain(String[]args){
Filefile=newFile("D:/luceneData/test1.txt");
System.out.println(txt2String(file));
}
}

㈩ java如何實現搜索功能。比如,輸入txt就能搜索出這個文件夾內所有txt格式的文件。請給完整代碼。

importjava.io.*;
publicclassFileDemo{
publicstaticvoidmain(String[]args)throwsException{
//第一個參數是文件路徑,第二個參數是要搜索的文件擴展名
getFile("D:\JavaDemo",".txt");
}
privatestaticvoidgetFile(StringpathName,finalStringendsWith)throwsException{
Filefile=newFile(pathName);
if(!file.exists())
thrownewRuntimeException("文件不存在,你檢索個P呀。");
file.listFiles(newFileFilter(){
publicbooleanaccept(Filefile){
if(file.getName().endsWith(endsWith)){
System.out.println(file.getName());
returntrue;
}else
returnfalse;
}
});
}
}

熱點內容
安卓微信拍了拍怎麼改 發布:2025-01-17 05:57:31 瀏覽:46
BMF伺服器的系統服務怎麼關 發布:2025-01-17 05:50:29 瀏覽:876
免刷安卓系統怎麼進入usb調試 發布:2025-01-17 05:48:21 瀏覽:837
資料庫的三層架構 發布:2025-01-17 05:17:36 瀏覽:149
雲頂之弈有人開腳本怎麼舉報 發布:2025-01-17 05:16:59 瀏覽:682
sql包含數字 發布:2025-01-17 05:11:56 瀏覽:292
密碼忘記了怎麼查看 發布:2025-01-17 05:02:30 瀏覽:682
腳本執行sql語句 發布:2025-01-17 04:47:51 瀏覽:702
結構體訪問成員變數 發布:2025-01-17 04:32:09 瀏覽:31
熱點緩存 發布:2025-01-17 04:30:07 瀏覽:523