java路径下的文件|java项目中文件的路径

java路径下的文件|java项目中文件的路径的第1张示图

1. java怎么查询指定路径下所有文件夹

Java程序中读取某个目录下的所有文件(下面以D盘下的文件夹为例),代码如下:import java.io.File;public class Test1 { public static void main(String[] args) { String path="D://"; File file=new File(path); File[] tempList = file.listFiles(); System.out.println("该目录下对象个数:"+tempList.length); for (int i = 0; i < tempList.length; i++) { if (tempList[i].isFile()) { //读取某个文件夹下的所有文件 System.out.println("文件:"+tempList[i]); } if (tempList[i].isDirectory()) { //读取某个文件夹下的所有文件夹 System.out.println("文件夹:"+tempList[i]); } } }}

2. java怎么样获取路径下的文件

//根据你的要求修改了一下代码,现在已经能将某文件夹下的所有指定类型文件复制到//指定文件夹下了import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;public class ReadFiles { public static final String FILTER = "xml"; public static final String SRC_DIR = "E:\\StudyData";// 待扫描的文件夹 public static final String DES_DIR = "E:\\testdata";// 复制后的目标文件夹 public static void main(String[] args) { long a = System.currentTimeMillis(); scanDir(SRC_DIR, DES_DIR); System.out.println("共花费时间:"+(System.currentTimeMillis() – a)/1000+"秒"); } public static void scanDir(String srcPath, String desPath) { File dir = new File(srcPath); File[] files = dir.listFiles(); if (files == null) return; for (int i = 0; i < files.length; i++) { if (files[i].isDirectory()) { scanDir(files[i].getAbsolutePath(), desPath); } else { String strFileName = files[i].getAbsolutePath().toLowerCase(); File(strFileName, desPath + files[i].getName()); } } } public static void File(String srcName, String destName) { if (srcName.endsWith(FILTER)) { System.out.println("正在复制文件 "+srcName+" 至 "+destName); try { BufferedInputStream in = new BufferedInputStream( new FileInputStream(srcName)); BufferedOutputStream out = new BufferedOutputStream( new FileOutputStream(destName)); int i = 0; byte[] buffer = new byte[2048]; while ((i = in.read(buffer)) != -1) { out.write(buffer, 0, i); } out.close(); in.close(); } catch (Exception ex) { ex.printStackTrace(); } } }}

3. java怎样获得某个目录下所有文件的文件名

importjava.io.File;importjava.util.ArrayList;publicclassFileTest{privatestaticArrayList<String>filelist=newArrayList<String>();publicstaticvoidmain(String[]args)throwsException{StringfilePath="E://Struts2";getFiles(filePath);}/**通过递归得到某一路径下所有的目录及其文件*/staticvoidgetFiles(StringfilePath){Fileroot=newFile(filePath);File[]files=root.listFiles();for(Filefile:files){if(file.isDirectory()){/**递归调用*/getFiles(file.getAbsolutePath());filelist.add(file.getAbsolutePath());System.out.println("显示"+filePath+"下所有子目录及其文件"+file.getAbsolutePath());}else{System.out.println("显示"+filePath+"下所有子目录"+file.getAbsolutePath());}}}}

4. java如何通过文件路径读取该路径下的所有文件并将其放入list中

java中可以通过递归的方式获取指定路径下的所有文件并将其放入List集合中。假设指定路径为path,目标集合为fileList,遍历指定路径下的所有文件,如果是目录文件则递归调用,如果是普通文件则放入fileList中。根据这个思路,得到java源代码如下所示://方法getFiles根据指定路径获取所有的文件public void getFiles(String path){//目标集合fileListArrayList<File> fileList = new ArrayList();File file = new File(path);if(file.isDirectory()){File []files = file.listFiles();for(File fileIndex:files){//如果这个文件是目录,则进行递归搜索if(fileIndex.isDirectory()){getFiles(fileIndex.getPath());}else {//如果文件是普通文件,则将文件句柄放入集合中fileList.add(fileIndex);}}}}

5. java项目中文件的路径

java项目中文件的路径-方法大全

一、 相对路径的获得

说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)

System.getProperty("user.dir");

上述相对路径中,java项目中的文件是相对于项目的根目录web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于tomcat安装目录in)二 类加载目录的获得(即当运行时某一类时获得其装载目录)1.1)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)InputStreamis=TestAction.class.getClassLoader().getResourceAsStream("test.txt");(test.txt文件的路径为 项目名srcest.txt;类TestPath所在包的第一级目录位于src目录下)

三 web项目根目录的获得(发布之后)1 从servlet出发

可建立一个servlet在其的init方法中写入如下语句(没有请求的话会抛空指针导常)

ServletContext s1=this.getServletContext();String temp=s1.getRealPath("/"); (关键)结果形如:F:omcat-6.0.36webappsest(test为项目名字)

如果是调用了s1.getRealPath("")则输出F:omcat-6.0.36webappsest(少了一个"")

2 从httpServletRequest出发(没有请求的话会抛空指针导常)

String path=request.getSession().getServletContext().getRealPath("/");

结果形如:F:omcat-6.0.36webappsest

四 classpath的获取(在Eclipse中为获得src或者classes目录的路径),放在监听器,可以窗口启动获取路径

方法一Thread.currentThread().getContextClassLoader().getResource("").getPath()

String path = Thread.currentThread().getContextClassLoader()

.getResource("").getPath();

System.out.println("path========"+ path);输出:path========/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/

方法二JdomParse.class.getClassLoader().getResource("").getPath()(JdomParse为src某一个包中的类,下同)

eg:String p1=JdomParse.class.getClassLoader().getResource("").getPath();System.out.println("JdomParse.class.getClassLoader().getResource–"+p1);

输出:JdomParse.class.getClassLoader().getResource-/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/

另外,如果想把文件放在某一包中,则可以 通过以下方式获得到文件(先定位到该包的最后一级目录)

eg String p2=JdomParse.class.getResource("").getPath();System.out.println("JdomParse.class.getResource—"+p2);

输出:JdomParse.class.getResource–/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/

(JdomParse为src目录下jdom包中的类)

四 属性文件的读取:

方法 一

InputStream in = lnewBufferedInputStream(newFileInputStream(name));

Properties p =newProperties();p.load(in);

注意路径的问题,做执行之后就可以调用p.getProperty("name")得到对应属性的值

方法二

Locale locale =Locale.getDefault();ResourceBundle localResource = ResourceBundle.getBundle("test/propertiesTest",locale);String value = localResource.getString("test");System.out.println("ResourceBundle: " + value);

工程src目录下propertiesTest.properties(名字后缀必须为properties)文件内容如下:

test=hello word

不通过Servlet获取路径

第一种实现

Java代码

URL url = ClassLoader.getSystemClassLoader().getResource("./");

File file =newFile(url.getPath());

File parentFile =newFile(file.getParent());

System.out.println("webRoot:"+parentFile.getParent());第二种实现首先写一个接听类 (推荐使用,容器启动时就执行,不会抛空指针异常,适合做定时器任务来删除服务器文件的路径)

Java代码:

package com.chinacreator.report.listener;

import javax.servlet.ServletContext;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

/**

* @authorxiaoqun.yi

*/

public class PathListener {

private staticServletContext servletContext;

public voidcontextDestroyed(ServletContextEvent sce) {

this.servletContext= sce.getServletContext();

System.out.println("path=======:"+servletContext.getRealPath("/"));

}

public voidcontextInitialized(ServletContextEvent arg0) {

}

}

在web.xml中加入如下配置

Java代码 :

<listener>

<listener-class>com.chinacreator.report.listener.PathListener</listener-class>

</listener>

五、Java中的getResourceAsStream有以下几种:1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由 ClassLoader(类加载器)(获取资源)2. Class.getClassLoader.getResourceAsStream(String path) :默认则是从ClassPath根下获取,path不能以’/'开头,最终是由ClassLoader获取资源。3. ServletContext. getResourceAsStream(String path):默认从WebAPP根目录下取资源,Tomcat下path是否以’/'开头无所谓,当然这和具体的容器实现有关。4. Jsp下的application内置对象就是上面的ServletContext的一种实现。其次,getResourceAsStream 用法大致有以下几种:第一: 要加载的文件和.class文件在同一目录下,例如:com.x.y 下有类me.class ,同时有资源文件myfile.xml那么,应该有如下代码:me.class.getResourceAsStream("myfile.xml");第二:在me.class目录的子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.y.file 目录下有资源文件myfile.xml那么,应该有如下代码:me.class.getResourceAsStream("file/myfile.xml");第三:不在me.class目录下,也不在子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.file 目录下有资源文件myfile.xml那么,应该有如下代码:me.class.getResourceAsStream("/com/x/file/myfile.xml");总结一下,可能只是两种写法第一:前面有 “ / ”“ / ”代表了工程的根目录,例如工程名叫做myproject,“ / ”代表了myprojectme.class.getResourceAsStream("/com/x/file/myfile.xml");第二:前面没有 “ / ”代表当前类的目录me.class.getResourceAsStream("myfile.xml");me.class.getResourceAsStream("file/myfile.xml");

6. java 怎么获取指定路径下的文件

//根据你的要求修改了一下代码,现在已经能将某文件夹下的所有指定类型文件复制到//指定文件夹下了import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;public class ReadFiles {public static final String FILTER = "xml";public static final String SRC_DIR = "E:\\StudyData";// 待扫描的文件夹public static final String DES_DIR = "E:\\testdata";// 复制后的目标文件夹public static void main(String[] args) {long a = System.currentTimeMillis();scanDir(SRC_DIR, DES_DIR);System.out.println("共花费时间:"+(System.currentTimeMillis() – a)/1000+"秒");}public static void scanDir(String srcPath, String desPath) {File dir = new File(srcPath);File[] files = dir.listFiles();if (files == null)return;for (int i = 0; i < files.length; i++) {if (files[i].isDirectory()) {scanDir(files[i].getAbsolutePath(), desPath);} else {String strFileName = files[i].getAbsolutePath().toLowerCase();File(strFileName, desPath + files[i].getName());}}}public static void File(String srcName, String destName) {if (srcName.endsWith(FILTER)) {System.out.println("正在复制文件 "+srcName+" 至 "+destName);try {BufferedInputStream in = new BufferedInputStream(new FileInputStream(srcName));BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(destName));int i = 0;byte[] buffer = new byte[2048];while ((i = in.read(buffer)) != -1) {out.write(buffer, 0, i);}out.close();in.close();} catch (Exception ex) {ex.printStackTrace();}}}}

7. Java 如何输出指定路径下的所有文件信息,包括文件名,最新编辑时间

获取文件名importjava.io.File;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;publicclassFindFiles{publicstaticvoidmain(String[]args){Stringpath="e:/service_all";FindFilesMethod1(path);}(Stringpath){List<Map<String,Object>>files=newArrayList<Map<String,Object>>();List<Map<String,Object>>folders=newArrayList<Map<String,Object>>();Filefile=newFile(path);File[]tempList=file.listFiles();System.out.println("该目录下对象个数:"+tempList.length);for(inti=0;i<tempList.length;i++){if(tempList[i].isFile()){Map<String,Object>filesMap=newHashMap<String,Object>();filesMap.put("fileUrl",tempList[i].toString().replaceAll("\\","/"));filesMap.put("fileName",tempList[i].getName().toString().replaceAll("\\","/"));files.add(filesMap);}if(tempList[i].isDirectory()){Map<String,Object>foldersMap=newHashMap<String,Object>();foldersMap.put("folderUrl",tempList[i].toString().replaceAll("\\","/"));foldersMap.put("folderName",tempList[i].getName().toString().replaceAll("\\","/"));folders.add(foldersMap);}}for(Map<String,Object>realfile:files){System.out.println("文件路径:"+realfile.get("fileUrl")+"&文件名:"+realfile.get("fileName"));}for(Map<String,Object>realfolder:folders){System.out.println("文件夹路径:"+realfolder.get("folderUrl")+"&文件夹名:"+realfolder.get("folderName"));}}}

8. 在java中如何遍历某个路径下的所有文件夹和文件

首先,我们先来遍历一下D盘根目录下所有的子文件:publicstaticvoidfileList(){Filefile=newFile("d:/");File[]files=file.listFiles();if(files!=null){for(Filef:files){System.out.println(f.getPath());}}}对此,我们肯定不满足,我们需要遍历D盘下所有的文件和文件夹,而不是根目录下的文件夹,这个时候我们需要使用到递归:publicstaticvoidfileList(Filefile){File[]files=file.listFiles();if(files!=null){for(Filef:files){System.out.println(f.getPath());fileList(f);}}}然后在主函数中调用:publicstaticvoidmain(String[]args){Filefile=newFile("d:/");fileList(file);}结果是不是能令你满意呢?显然,输出的都是全路径,我们可以对我们的递归函数做如下改进:publicstaticvoidfileList(Filefile,intnode){node++;File[]files=file.listFiles();if(files!=null){for(Filef:files){for(inti=0;i<node;i++){if(i==node-1){System.out.print("├");}else{System.out.print("");}}System.out.println(f.getName());fileList(f,node);}}}然后再次在主函数中调用:publicstaticvoidmain(String[]args){Filefile=newFile("d:/");fileList(file,0);}得到的结果是一个类似树状的结构,如果你对此还不满意,可以尝试给JTree上添加节点,可以做到和资源管理器中一样的结构。

9. java中如何实现将指定路径下的文件复制到另一路径下

把mp3中的歌复制到手机??你可以先把np3里的歌复制到电脑然后再复制到手机啊。。。找不到指定文件的话先把要复制的东西复制到别的文件夹里或者别的盘再复制看看

10. java根据路径读取文件

直接贴代码吧。不过这里要做一个简单的说明,对于这个程序,我们必须保证我们在C盘下有一个Users\HP\Desktop的文件夹,因为在后面写入文件的时候,如果路径中的文件不存在,是程序可以自动为其添加,但如果没有了这个路径,则程序会报找不到文件路径的异常。你可以对这个异常进行人性的处理,还可以在程序要向这个路径写入数据之前,创建出这个路径。import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.Scanner;public class ListRoots {private static final String LOG_BASE_PATH = "C:\\Users\HP\\Desktop\\";private static ArrayList<String> mfiles = new ArrayList<String>();/*** 得到给定路径下的目录或是文件* @param strPath* @throws Exception*/private static void displayDirsOrFiles(String strPath) throws Exception {try {File f = new File(strPath);if (f.isDirectory()) {File[] fList = f.listFiles();for (int j = 0; j < fList.length; j++) {if (fList[j].isDirectory()) {System.out.println("Directory is: "+ fList[j].getPath());displayDirsOrFiles(fList[j].getPath()); // 对当前目录下仍是目录的路径进行遍历}}for (int j = 0; j < fList.length; j++) {if (fList[j].isFile()) {String name = fList[j].getPath().toString();System.out.println("Filename is: " + name);mfiles.add(fList[j].getPath());}}}} catch (Exception e) {System.err.println("Error: " + e);}}/*** 向文件中写入数据* @param dirOrfiles* @throws IOException*/private static void writeDetailToFiles(ArrayList<String> dirOrfiles) throws IOException {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd H:m:s");toFiles(getLogPath(), format.format(new Date()) + " — 检测到文件" + dirOrfiles.size() + "个:" + "\r\n");for (String file : dirOrfiles) {toFiles(getLogPath(), file + "\r\n");}toFiles(getLogPath(), "————————————————————————————————————————–\r\n");}/*** 获得写入数据的路径* @return*/private static String getLogPath() {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");return LOG_BASE_PATH + format.format(new Date()) + ".txt";}/*** 向dir路径下写入数据data* @param path* @param data*/private static void toFiles(String path, String data) throws IOException {File file = new File(path);if (!file.exists()) {file.createNewFile();}FileWriter fw = new FileWriter(file, true);fw.write(data);fw.flush();fw.close();}public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入待遍历目录路径(Format: F:\\a\\b):");String strPath = input.nextLine();try {displayDirsOrFiles(strPath.replace("\\", "\\\\"));writeDetailToFiles(mfiles);} catch (Exception e) {e.printStackTrace();}}}

未经允许不得转载:山九号 » java路径下的文件|java项目中文件的路径

赞 (0)