❶ 用java怎么查询文本文件的数据
package help;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.Scanner;public class FindKeyword { //文件路径 public static final String FILEPATH="D:/demo.txt"; //txt文件最大为1M public static final int MAXSIZE=1024*1024; public static void main(String args[]){ try { File file=new File(FindKeyWord.FILEPATH); FileInputStream fis=new FileInputStream(file); BufferedInputStream bis=new BufferedInputStream(fis); byte[] b=new byte[FindKeyWord.MAXSIZE]; int length=bis.read(b);//读取文件中的信息放到字符数组中 String textContext=new String(b,0,length);//转换成字符串 System.out.print("请输入关键字:"); Scanner sc=new Scanner(System.in); String keyWord=sc.nextLine();//得到输入的关键字 int position=textContext.indexOf(keyWord);//查询是否存在输入的关键字 System.out.println((position==-1)?"不存在您输入的关键字":("存在您输入的关键字,在第"+(position+1)+"位置")); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}上面是我自己刚写的…如果有什么不明白的查一下JAVA API文档…我只是写了一个基本功能实现的 查询的是 D:/demo.txt 当然如果你要想查询任一文件需要改一下输入路径…还有你也可以做个循环语句,让它可以循环查询…这就由你自己来写了…不能全部都让别人来写吧!剩下的自己去补充吧!!呵呵…祝君早日成功!
❷ 从java代码文件检索问题,怎么解决
你是搜文件名,还是搜文件内容?要是搜文件内容可就麻烦了,有可能的话你看看Java的一个开源库Lucene。
要是简单的搜文件名包含的字符串,大致应该涉及到文件树的遍历算法,最多用一些简单的正则表达式来匹配文件名,一般用递归可以实现任意级目录树的搜索。
给你个简单的版本吧:
04142434445packagetest.tool;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileReader;importjava.io.IOException;importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassFindFile{privateStringfileName="";privateStringdir="";privateMatcherm=null;privateintcount=0;publicFindFile()throwsIOException{Stringf=FindFile.class.getResource("findfile.properties").getFile();BufferedReaderread=newBufferedReader(newFileReader(f));dir=read.readLine().trim();fileName=read.readLine().trim();Patternp=Pattern.compile(fileName);m=p.matcher("");}publicvoidfind(){Fileroot=newFile(dir);for(Filef:root.listFiles()){if(f.isDirectory()){dir=f.getAbsolutePath();find();}else{m.reset(f.getName());if(m.find()){count++;System.out.println(f.getAbsolutePath());}}}}publicstaticvoidmain(String[]args){try{FindFileff=newFindFile();ff.find();System.out.println("共找到文件数目:"+ff.count);}catch(IOExceptione){e.printStackTrace();}}}
里面用到的findfile.properties,举个例子:
12F:downloadvod.*.exe
运行效果如下:
F:downloadfirefoxvodplayer.exeF:downloadievodplayer.exe共找到文件数目:2
❸ java如何实现文件搜索功能
java实现文件搜索主要使用类和正则表达式,如下示例:
packagecom.kiritor.util;importjava.io.File;importjava.io.FileFilter;importjava.util.Arrays;importjava.util.Collections;importjava.util.List;/***文件的相关操作类**@authorKiritor*/publicclassFileOperation{;privatestaticStringfilePath;privatestaticFile[]fileList=null;//保存文件列表,过滤掉目录publicFileOperation(){}/**构造函数的参数是一个目录*/publicFileOperation(Stringpath){Filefile=newFile(path);if(file.isDirectory())this.contentPath=path;elsethis.filePath=path;}/**获取文件列表*/publicstaticFile[]getFiles(){if(contentPath==null){Filefile=newFile(filePath);fileList=newFile[1];fileList[0]=file;returnfileList;}fileList=newFile(contentPath).listFiles(newFileFilter(){/**使用过滤器过滤掉目录*/@Overridepublicbooleanaccept(Filepathname){if(pathname.isDirectory()){returnfalse;}elsereturntrue;}});returnfileList;}/**对当前目录下的所有文件进行排序*/publicstaticFile[]sort(){getFiles();Arrays.sort(fileList,newFileComparator());returnfileList;}publicstaticvoidtree(Filef,intlevel){StringpreStr="";for(inti=0;i<level;i++){preStr+="";}File[]childs=f.listFiles();//返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。for(inti=0;i<childs.length;i++){System.out.println(preStr+childs[i].getName());if(childs[i].isDirectory()){tree(childs[i],level+1);}}}//提供一个"比较器".util.Comparator<File>{@Overridepublicintcompare(Fileo1,Fileo2){//按照文件名的字典顺序进行比较returno1.getName().compareTo(o2.getName());}}}
❹ 怎么用java实现在一个txt文件中根据关键字查找信息并输出
个人愚见,还望指教1、把txt文件封装成file对象;2、如果是纯文字可以用FileReader如果不是的话可以用流转换一下FileInputStream;3、维护一个数组将内容读取;4、判断数组里面的关键词;(可以吧数组转换为String用contains方法)
❺ 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 如何在指定文件夹下查找文件
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 快速查找100G的文件
有一个100G大小的文件里存的全是数字,而且每一个数字见用逗号隔开。如今在这一大堆数字中找出100个最大的数出来。使用Files类将文件的所有内容读入字节数组。Files类还有一个方法可以读取所有行到字符串列表。Files类是在Java 7中引入的,如果想加载所有文件内容,使用这个类是比较适合的。只有在处理小文件并且需要加载所有文件内容到内存中时才应使用此方法。
❽ java 查找一个txt文件下的内容
java查找一个txt文件下的内容,先在c盘创建一个txt格式文件,如图:
❾ java怎么根据文件格式搜索文件
java一般存在两种文件格式,如下:1.*.java文件是保存源代码的文本文件(*代表类名)使用回javac*.java可以编译该文答件使用java*可以运行该类2.*.class是用于保存java类的二进制编码以及class对象,每一个java类都有一个解释该类特征的class对象。*.jar文件是一种压缩文件格式
❿ 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文件内容查找|java怎么根据文件格式搜索文件