java中如何读取文件

java读取文件的方法:1、通过使用【java.io】方法读取,相对于当前用户目录的相对路径读取;2、通过使用【java.lang.ClassLoader】方法读取,相对于classpath的相对路径读取。

java中如何读取文件

java中读取文件的方法:

java读取文件的两种方法:java.io和java.lang.ClassLoader

// java.io:  File  file  =  new  File("...");  FileInputStream  fis  =  new  FileInputStream("...");  FileReader  fr  =  new  FileReader("...");  //ClassLoader:  ClassLoader  loader  =  XXXClass.class.getClassLoader();   ClassLoader  loader2  =  Thread.currentThread().getContextClassLoader();  URL  url  =  loader.getResource("...");  File  file  =  new  File(url.getFile());  InputStream  input  =  loader.getResourceAsStream("...");

登录后复制

1、java.io 包中的类总是根据当前用户目录来分析相对路径名,也就是说相对路径是否好使,取决于 user.dir 的值。系统属性 user.dir 是 JVM 启动的时候设置的,通常是 Java 虚拟机的调用目录,即执行 java 命令所在的目录。

对于 tomcat/jboss 容器,user.dir 是 %home/bin%/ 目录,因为这个目录就是我们启动 web 容器的地方

立即学习“Java免费学习笔记(深入)”;

在 eclipse 中运行程序的时候,eclipse 会将 user.dir 的值设置为工程的根目录

用户目录可以使用 System.getProperty(“user.dir”) 来查看

所以说,使用 java.io 读取文件,无论是相对路径,还是绝对路径都不是好的做法,能不使用就不要使用(在 JavaEE 中)。

2、使用ClassLoader

Class.getResource() 有 2 种方式,绝对路径和相对路径。绝对路径以 / 开头,从 classpath 或 jar 包根目录下开始搜索;

相对路径是相对当前 class 所在的目录,允许使用 .. 或 . 来定位文件。

ClassLoader.getResource() 只能使用绝对路径,而且不用以 / 开头。

这两种方式读取资源文件,不会依赖于 user.dir,也不会依赖于具体部署的环境,是推荐的做法(JavaEE)

如何选取

java.io:

相对于当前用户目录的相对路径读取;注重与磁盘文件打交道或者纯 java project 中使用。

虽然 ClassLoader 方式更通用,但是如果不是 javaEE 环境,要定位到 classpath 路径下去读文件是不合理的。

java.lang.ClassLoader:

相对于 classpath 的相对路径读取;建议在 javaEE 环境中都使用这种方式。

通常,ClassLoader 不能读取太大的文件,它适合读取 web 项目的那些配置文件,如果需要读取大文件,还是要用 IO 包下的,可以先通过 ClassLoader 获取到文件的绝对路径,然后传给 File 或者其他对象,用 io 包里的对象去读取会更好些。

更多java知识请关注java基础教程。

以上就是java中如何读取文件的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2604810.html

(0)
上一篇 2025年3月6日 19:56:49
下一篇 2025年2月18日 03:52:15

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • java post请求乱码解决方法

    Java WEB项目中,中文乱码是一个经常遇到而又非常头痛的问题,其中最容易出现乱码的环节就是在浏览器向服务器发送请求的过程。下边就这一问题介绍解决方法,希望会帮助到大家。以下转码都是以UTF-8为参考,若为其他编码格式可自行修改。 一、R…

    2025年3月6日
    200
  • java中请求乱码解决方法

    出现的问题: 通过get请求向服务器发送请求时,如果请求参数为中文时,服务器端接受到的参数为乱码。 乱码原因分析及解决办法: 1、关于解码和编码 立即学习“Java免费学习笔记(深入)”; 编码:’中’→111000…

    2025年3月6日
    200
  • java出现乱码的原因与解决方法详解

    java在字符串中统一用Unicode表示。(推荐:java视频教程) 对于任意一个字符串:String string = “测试字符串”; 如果源文件是GBK编码,操作系统默认环境编码也为GBK,那么编译的时候,JVM将按照GBK编码将字…

    2025年3月6日
    200
  • java页面乱码解决方法

    在页面提交到tomcat乱码 解决方法是在tomcat/conf/server.xml中进行配置(推荐:java视频教程) 以tomcat6.0.32为例,需将以下代码: Xml代码 登录后复制 改为: 立即学习“Java免费学习笔记(深入…

    2025年3月6日
    200
  • java文件名中文乱码解决方法

    JAVA文件下载时乱码有两种情况:(推荐:java视频教程) 1,下载时中文文件名乱码 2,下载时因为路径中包含中文文件名乱码,提示找不到文件 解决方法见下面部分代码 立即学习“Java免费学习笔记(深入)”; response.setCo…

    2025年3月6日 编程技术
    200
  • Java的基础面试题目(4)

    a.hashCode() 有什么用?与 a.equals(b) 有什么关系? hashCode() 方法对应对象整型的 hash 值。它常用于基于 hash 的集合类,如 Hashtable、HashMap、LinkedHashMap等等。…

    2025年3月6日
    200
  • java中url传中文参数出现乱码

    原因: Http请求传输时将url以ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字符流(造成中文乱码)。 方法一: 我们需要把request.getParameter(“参数名”)获取到的字符串先用I…

    2025年3月6日
    200
  • java几种乱码处理方法介绍

    java乱码解决方法: 解决方式1(若乱码参数多,就比较低效) 浏览器默认编码为ISO-8859-1,后端Servlet接收请求参数,按照ISO-8859-1进行解码,得到二进制流,然后再用UTF-8编码。 示例代码:         立即…

    2025年3月6日
    200
  • vscode搭建java开发环境

    环境:系统需安装jdk1.8,配置好环境变量java_home 打开vscode,安装java相关插件 Language support for Java ™ for Visual Studio Code Java Extension Pa…

    2025年3月6日
    200
  • java中url下访问项目图片不显示

    img标签:如下 登录后复制登录后复制 建议换成 登录后复制登录后复制 也就是从项目名开始访问本项目的具体路径。 相关视频教程分享:java在线视频 如果是浏览器直接访问的话,请排查实际部署的容器中是否有该图片。 立即学习“Java免费学习…

    2025年3月6日
    200

发表回复

登录后才能评论