我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java如何获得当前文件路径

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java如何获得当前文件路径

这篇文章主要介绍“Java如何获得当前文件路径”,在日常操作中,相信很多人在Java如何获得当前文件路径问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java如何获得当前文件路径”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

如何获得当前文件路径

常用:

字符串类型:System.getProperty("user.dir");

综合:

package com.zcjl.test.base;
import java.io.File;
public class Test {
   public static void main(String[] args) throws Exception {
       System.out.println(            Thread.currentThread().getContextClassLoader().getResource(""));
       System.out.println(Test.class.getClassLoader().getResource(""));
       System.out.println(ClassLoader.getSystemResource(""));
       System.out.println(Test.class.getResource(""));
       System.out.println(Test.class.getResource("/"));
       System.out.println(new File("").getAbsolutePath());
       System.out.println(System.getProperty("user.dir"));
   }
}

[@more@]

Web服务中

(1).Weblogic

WebApplication的系统文件根目录是你的weblogic安装所在根目录。
例如:如果你的weblogic安装在c:beaweblogic700.....
那么,你的文件根路径就是c:.
所以,有两种方式能够让你访问你的服务器端的文件:
a.使用绝对路径:
比如将你的参数文件放在c:yourconfigyourconf.properties,
直接使用 new FileInputStream("yourconfig/yourconf.properties");
b.使用相对路径:
相对路径的根目录就是你的webapplication的根路径,即WEB-INF的上一级目录,将你的参数文件放在yourwebappyourconfigyourconf.properties,
这样使用:
new FileInputStream("./yourconfig/yourconf.properties");
这两种方式均可,自己选择。

(2).Tomcat

在类中输出System.getProperty("user.dir");显示的是%Tomcat_Home%/bin

(3).Resin

不是你的JSP放的相对路径,是JSP引擎执行这个JSP编译成SERVLET
的路径为根.比如用新建文件法测试File f = new File("a.htm");
这个a.htm在resin的安装目录下

(4).如何读相对路径哪?

在Java文件中getResource或getResourceAsStream均可

例:getClass().getResourceAsStream(filePath);//filePath可以是"/filename",这里的/代表web发布根路径下WEB-INF/classes

(5).获得文件真实路径

string  file_real_path=request.getRealPath("mypath/filename");  

通常使用request.getRealPath("/");  

文件操作的类

import java.io.*;
import java.net.*;
import java.util.*;
//import javax.swing.filechooser.*;
//import org.jr.swing.filter.*;

public class FileUtil {
 
 private FileUtil() {

 }

 
 public static void touch(File file) {
   long currentTime = System.currentTimeMillis();
   if (!file.exists()) {
     System.err.println("file not found:" + file.getName());
     System.err.println("Create a new file:" + file.getName());
     try {
       if (file.createNewFile()) {
       //  System.out.println("Succeeded!");
       }
       else {
       //  System.err.println("Create file failed!");
       }
     }
     catch (IOException e) {
     //  System.err.println("Create file failed!");
       e.printStackTrace();
     }
   }
   boolean result = file.setLastModified(currentTime);
   if (!result) {
   //  System.err.println("touch failed: " + file.getName());
   }
 }

 
 public static void touch(String fileName) {
   File file = new File(fileName);
   touch(file);
 }

 
 public static void touch(File[] files) {
   for (int i = 0; i < files.length; i++) {
     touch(files);
   }
 }

 
 public static void touch(String[] fileNames) {
   File[] files = new File[fileNames.length];
   for (int i = 0; i < fileNames.length; i++) {
     files = new File(fileNames);
   }
   touch(files);
 }

 
 public static boolean isFileExist(String fileName) {
   return new File(fileName).isFile();
 }

 
 public static boolean makeDirectory(File file) {
   File parent = file.getParentFile();
   if (parent != null) {
     return parent.mkdirs();
   }
   return false;
 }

 
 public static boolean makeDirectory(String fileName) {
   File file = new File(fileName);
   return makeDirectory(file);
 }

 
 public static boolean emptyDirectory(File directory) {
   boolean result = false;
   File[] entries = directory.listFiles();
   for (int i = 0; i < entries.length; i++) {
     if (!entries.delete()) {
       result = false;
     }
   }
   return true;
 }

 
 public static boolean emptyDirectory(String directoryName) {
   File dir = new File(directoryName);
   return emptyDirectory(dir);
 }

 
 public static boolean deleteDirectory(String dirName) {
   return deleteDirectory(new File(dirName));
 }

 
 public static boolean deleteDirectory(File dir) {
   if ( (dir == null) || !dir.isDirectory()) {
     throw new IllegalArgumentException("Argument " + dir +
                                        " is not a directory. ");
   }

   File[] entries = dir.listFiles();
   int sz = entries.length;

   for (int i = 0; i < sz; i++) {
     if (entries.isDirectory()) {
       if (!deleteDirectory(entries)) {
         return false;
       }
     }
     else {
       if (!entries.delete()) {
         return false;
       }
     }
   }

   if (!dir.delete()) {
     return false;
   }
   return true;
 }


 
 public static URL getURL(File file) throws MalformedURLException {
   String fileURL = "file:/" + file.getAbsolutePath();
   URL url = new URL(fileURL);
   return url;
 }

 
 public static String getFileName(String filePath) {
   File file = new File(filePath);
   return file.getName();
 }

 
 public static String getFilePath(String fileName) {
   File file = new File(fileName);
   return file.getAbsolutePath();
 }

 
 public static String toUNIXpath(String filePath) {
   return filePath.replace('', '/');
 }

 
 public static String getUNIXfilePath(String fileName) {
   File file = new File(fileName);
   return toUNIXpath(file.getAbsolutePath());
 }

 
 public static String getTypePart(String fileName) {
   int point = fileName.lastIndexOf('.');
   int length = fileName.length();
   if (point == -1 || point == length - 1) {
     return "";
   }
   else {
     return fileName.substring(point + 1, length);
   }
 }

 
 public static String getFileType(File file) {
   return getTypePart(file.getName());
 }

 
 public static String getNamePart(String fileName) {
   int point = getPathLsatIndex(fileName);
   int length = fileName.length();
   if (point == -1) {
     return fileName;
   }
   else if (point == length - 1) {
     int secondPoint = getPathLsatIndex(fileName, point - 1);
     if (secondPoint == -1) {
       if (length == 1) {
         return fileName;
       }
       else {
         return fileName.substring(0, point);
       }
     }
     else {
       return fileName.substring(secondPoint + 1, point);
     }
   }
   else {
     return fileName.substring(point + 1);
   }
 }

 
 public static String getPathPart(String fileName) {
   int point = getPathLsatIndex(fileName);
   int length = fileName.length();
   if (point == -1) {
     return "";
   }
   else if (point == length - 1) {
     int secondPoint = getPathLsatIndex(fileName, point - 1);
     if (secondPoint == -1) {
       return "";
     }
     else {
       return fileName.substring(0, secondPoint);
     }
   }
   else {
     return fileName.substring(0, point);
   }
 }

 
 public static int getPathIndex(String fileName) {
   int point = fileName.indexOf('/');
   if (point == -1) {
     point = fileName.indexOf('');
   }
   return point;
 }

 
 public static int getPathIndex(String fileName, int fromIndex) {
   int point = fileName.indexOf('/', fromIndex);
   if (point == -1) {
     point = fileName.indexOf('', fromIndex);
   }
   return point;
 }

 
 public static int getPathLsatIndex(String fileName) {
   int point = fileName.lastIndexOf('/');
   if (point == -1) {
     point = fileName.lastIndexOf('');
   }
   return point;
 }

 
 public static int getPathLsatIndex(String fileName, int fromIndex) {
   int point = fileName.lastIndexOf('/', fromIndex);
   if (point == -1) {
     point = fileName.lastIndexOf('', fromIndex);
   }
   return point;
 }

 
 public static String trimType(String filename) {
   int index = filename.lastIndexOf(".");
   if (index != -1) {
     return filename.substring(0, index);
   }
   else {
     return filename;
   }
 }
 
 public static String getSubpath(String pathName,String fileName) {
   int index = fileName.indexOf(pathName);
   if (index != -1) {
     return fileName.substring(index + pathName.length() + 1);
   }
   else {
     return fileName;
   }
 }

}
4.遗留问题

目前new FileInputStream()只会使用绝对路径,相对没用过,因为要相对于web服务器地址,比较麻烦

还不如写个配置文件来的快哪

按Java文件类型分类读取配置文件

配置文件是应用系统中不可缺少的,可以增加程序的灵活性。java.util.Properties是从jdk1.2就有的类,一直到现在都支持load ()方法,jdk1.4以后save(output,string) ->store(output,string)。如果只是单纯的读,根本不存在烦恼的问题。web层可以通过 Thread.currentThread().getContextClassLoader().
getResourceAsStream("xx.properties") 获取;Application可以通过new FileInputStream("xx.properties");直接在classes一级获取。关键是有时我们需要通过web修改配置文件,我们不能将路径写死了。经过测试觉得有以下心得:

servlet中读写。如果运用Struts 或者Servlet可以直接在初始化参数中配置,调用时根据servlet的getRealPath("/")获取真实路径,再根据String file = this.servlet.getInitParameter("abc");获取相对的WEB-INF的相对路径。
例:
InputStream input = Thread.currentThread().getContextClassLoader().
getResourceAsStream("abc.properties");
Properties prop = new Properties();
prop.load(input);
input.close();
OutputStream out = new FileOutputStream(path);
prop.setProperty("abc", “test");
prop.store(out, “–test–");
out.close();

直接在jsp中操作,通过jsp内置对象获取可操作的绝对地址。
例:
// jsp页面
String path = pageContext.getServletContext().getRealPath("/");
String realPath = path+"/WEB-INF/classes/abc.properties";

//java 程序
InputStream in = getClass().getClassLoader().getResourceAsStream("abc.properties"); // abc.properties放在webroot/WEB-INF/classes/目录下
prop.load(in);
in.close();

OutputStream out = new FileOutputStream(path); // path为通过页面传入的路径
prop.setProperty("abc", “abcccccc");
prop.store(out, “–test–");
out.close();

只通过Java程序操作资源文件
InputStream in = new FileInputStream("abc.properties"); // 放在classes同级

OutputStream out = new FileOutputStream("abc.properties");

到此,关于“Java如何获得当前文件路径”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java如何获得当前文件路径

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java如何获得当前文件路径

这篇文章主要介绍“Java如何获得当前文件路径”,在日常操作中,相信很多人在Java如何获得当前文件路径问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java如何获得当前文件路径”的疑惑有所帮助!接下来,请跟
2023-06-03

java怎么获取当前文件路径

在Java中,可以使用System.getProperty("user.dir")来获取当前文件的路径。这会返回一个字符串,表示当前的工作目录。另外,可以使用File类来获取当前文件的路径,如下所示:import java.io.File
2023-10-21

java如何获取当前程序路径

Java中可以使用以下方法来获取当前程序的路径:1. 使用`System.getProperty("user.dir")`方法,它会返回当前程序的工作目录路径。2. 使用`File`类的`getAbsolutePath()`方法,可以通过创
2023-09-27

php怎么获取当前文件路径

您可以使用`__FILE__`常量来获取当前文件的路径。它返回当前执行的脚本的完整路径和文件名。以下是一个示例:```php$currentFilePath = __FILE__;echo "当前文件的路径是:" . $currentFil
2023-08-16

java中怎么获取当前路径

在Java中,可以使用`System.getProperty("user.dir")`来获取当前工作目录的路径。示例代码如下:```javapublic class Main {public static void main(String[
2023-08-18

JAVA怎么获取当前项目和文件所在路径

这篇文章给大家分享的是有关JAVA怎么获取当前项目和文件所在路径的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。直接上代码: //当前项目下路径 File file = new File(""); String
2023-06-06

java如何获取当前项目的路径地址

在Java中,可以使用以下代码获取当前项目的路径地址:1. 使用`System.getProperty("user.dir")`方法获取当前项目的工作目录路径,代码如下:```javaString projectPath = System.
2023-09-13

java如何获取文件路径

第一种:File f = new File(this.getClass().getResource("/").getPath());System.out.println(f);结果: C:Documents%20and%20SettingsAdministra
java如何获取文件路径
2022-04-18

linux下如何获取当前工作路径

小编给大家分享一下linux下如何获取当前工作路径,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!获取工作路径这里介绍两种方法:1.使用getcwd()函数。头文件
2023-06-09

JAVA文件中如何获取路径

这篇文章主要介绍了JAVA文件中如何获取路径,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. 基本概念的理解`绝对路径`:你应用上的文件或目录在硬盘上真正的路径,如:URL
2023-05-30

java怎么获取当前项目的路径

在Java中,可以使用以下代码获取当前项目的路径:```javaString currentPath = System.getProperty("user.dir");System.out.println("当前项目的路径:" + curr
2023-09-04

java如何获取指定文件路径

在Java中,要获取指定文件的路径,可以使用java.nio.file.Path类来完成。可以使用以下几种方法来获取文件路径:1. 使用Paths.get(String first, String... more)方法创建一个文件路径对象:
2023-10-21

java获取当前路径的方法有哪些

Java获取当前路径的方法有以下几种方式:1. 使用System.getProperty("user.dir")方法获取当前工作目录的路径。这个方法返回一个字符串,代表当前用户的工作目录。例如:String currentPath = Sy
2023-10-07

vue如何看当前vue路径

Vue.js是一款流行的JavaScript框架,用于构建富交互式Web应用程序。Vue.js提供了许多实用工具和API来简化Web应用程序的开发。其中一个重要的功能就是路由。在Vue.js应用程序中,路由是一种管理应用程序URL的机制。它可以用来定义不同的URL路径,并指定响应这些路径的组件。如果您希望查看当前Vue路径,以下是一些适用的方法:1. 使用Vue RouterV
2023-05-14

Linux如何显示当前路径

这篇文章主要介绍“Linux如何显示当前路径”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux如何显示当前路径”文章能帮助大家解决问题。在Linux中可以使用pw
2023-02-07

bash shell如何获取当前脚本的绝对路径

本篇内容主要讲解“bash shell如何获取当前脚本的绝对路径”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“bash shell如何获取当前脚本的绝对路径”吧!有时候,我们需要知道当前执行的输
2023-06-29

oracle如何获得当前时间戳

要获得当前时间戳,您可以使用Oracle数据库中的`SYSTIMESTAMP`函数。这个函数返回一个包含当前日期和时间的`TIMESTAMP WITH TIME ZONE`数据类型。以下是获取当前时间戳的示例查询:```sqlSELECT
oracle如何获得当前时间戳
2024-02-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录