java相对路径,java相对路径转绝对路径

本文目录一览:

什么是java的相对路径和绝对路径阿 怎么访问相对路径里的文件和绝对路径里的文件

1、相对路径-顾名思义,相对路径就是相对于当前文件的路径。网页中一般表示路径使用这个方法。

2、绝对路径-绝对路径就是你的主页上的文件或目录在硬盘上真正的路径。绝对路径就是你的主页上的文件或目录

“./”:代表目前所在的目录。

“../”:代表上一层目录。

以”/”开头:代表根目录。

java怎么获取文件的相对路径

一个例子,如果有一个Test文件夹里面有test.java和hello.txt.如果你想用test.java操作hello.txt

只要在test.java中这样写File file=new File(“hello.txt”);//这样就是相对路径。如果文件结构是

Test文件夹

… |——test.java

… |——hello.txt

… |——source文件夹

…………….. |———world.txt

如果想在test.java中操作world.txt。只要这样写File file=new File(“source/world.txt”);

另外,在web开发中/代表项目文件夹根目录,当然也有可能代替webapps,区分方法是:如果/开头的uri是给浏览器解析则/代表webapps,如果是给服务器后台解析,则代表项目文件

java中用相对路径打开文件。

1、在Java开发工具的project中使用相对路径

在project中,相对路径的根目录是project的根文件夹,在此就是repathtest文件夹了。创建文件的写法是:

File f = new File(“src/com/lavasoft/res/a.txt”);

File f = new File(“doc/b.txt”);

注意:路径不以“/”开头;

脱离了IDE环境,这个写法就是错误的,也并非每个IDE都如此。

2、通过CLASSPATH读取包内文件

读取包内文件,使用的路径一定是相对的classpath路径,比如a,位于包内,此时可以创建读取a的字节流:

InputStream in = ReadFile.class.getResourceAsStream(“/com/lavasoft/res/a.txt”);

有了字节流,就能读取到文件内容了。

注意:这里必须以“/”开头;

3、看看完整的java中用相对路径打开文件测试代码:

package com.lavasoft.test; 

import java.io.*; 

/** 

* Java读取相对路径的文件 

*/ 

public class ReadFile { 

        public static void main(String[] args) { 

                readTextA_ByClassPath(); 

                readTextA_ByProjectRelativePath(); 

                readTextB_ByProjectRelativePath(); 

        } 

        /** 

         * 通过工程相对路径读取(包内)文件,注意不以“/”开头 

         */ 

        public static void readTextA_ByProjectRelativePath() { 

                System.out.println(“—————–readTextA_ByProjectRelativePath———————“); 

                File f = new File(“src/com/lavasoft/res/a.txt”); 

                String a = file2String(f, “GBK”); 

                System.out.println(a); 

        } 

        /** 

         * 通过工程相对路径读取(包外)文件,注意不以“/”开头 

         */ 

        public static void readTextB_ByProjectRelativePath() { 

                System.out.println(“—————–readTextB_ByProjectRelativePath———————“); 

                File f = new File(“doc/b.txt”); 

                String b = file2String(f, “GBK”); 

                System.out.println(b); 

        } 

        /** 

         * 通过CLASSPATH读取包内文件,注意以“/”开头 

         */ 

        public static void readTextA_ByClassPath() { 

                System.out.println(“—————–readTextA_ByClassPath———————“); 

                InputStream in = ReadFile.class.getResourceAsStream(“/com/lavasoft/res/a.txt”); 

                String a = stream2String(in, “GBK”); 

                System.out.println(a); 

        } 

        /** 

         * 文件转换为字符串 

         * 

         * @param f             文件 

         * @param charset 文件的字符集 

         * @return 文件内容 

         */ 

        public static String file2String(File f, String charset) { 

                String result = null; 

                try { 

                        result = stream2String(new FileInputStream(f), charset); 

                } catch (FileNotFoundException e) { 

                        e.printStackTrace(); 

                } 

                return result; 

        } 

        /** 

         * 文件转换为字符串 

         * 

         * @param in            字节流 

         * @param charset 文件的字符集 

         * @return 文件内容 

         */ 

        public static String stream2String(InputStream in, String charset) { 

                StringBuffer sb = new StringBuffer(); 

                try { 

                        Reader r = new InputStreamReader(in, charset); 

                        int length = 0; 

                        for (char[] c = new char[1024]; (length = r.read(c)) != -1;) { 

                                sb.append(c, 0, length); 

                        } 

                        r.close(); 

                } catch (UnsupportedEncodingException e) { 

                        e.printStackTrace(); 

                } catch (FileNotFoundException e) { 

                        e.printStackTrace(); 

                } catch (IOException e) { 

                        e.printStackTrace(); 

                } 

                return sb.toString(); 

        } 

}

原创文章,作者:IPSP,如若转载,请注明出处:https://www.506064.com/n/134705.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
IPSPIPSP
上一篇 2024-10-04 00:07
下一篇 2024-10-04 00:07

相关推荐

  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29

发表回复

登录后才能评论