广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >java中如何读取文件
  • 980
分享到

java中如何读取文件

java基础java 2019-09-20 13:09:00 980人浏览 才女
摘要

java读取文件的两种方法:java.io和java.lang.ClassLoader// java.io: File file = new File("..."); FileInputStream fis = new

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("...");

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

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

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

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

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

使用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基础教程

--结束END--

本文标题: java中如何读取文件

本文链接: https://www.lsjlt.com/news/4644.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • java中如何读取文件
    java读取文件的两种方法:java.io和java.lang.ClassLoader// java.io: File file = new File("..."); FileInputStream fis = new...
    99+
    2019-09-20
    java基础 java
  • java中如何读取文件?
    读取文件有多种方式,基于传统的输入流方式或基于nio的Buffer缓冲对象和管道读取方式甚至非常快速的内存映射读取文件。java中四种读取文件方式:(推荐:java视频教程)RandomAccessFile:随机读取,比较慢优点就是该类可读...
    99+
    2016-06-13
    java
  • java如何读取大文件文本
    Java可以使用`BufferedReader`类来读取大文件文本。`BufferedReader`类提供了一个`readLine(...
    99+
    2023-08-08
    java
  • java如何读取配置文件
    Java中可以使用java.util.Properties类来读取配置文件。Properties类提供了一些方法来读取和操作属性文件...
    99+
    2023-08-08
    java
  • java中文件怎么读取
    java的读写操作是学java开发的必经之路,下面我们就来看一下java中文件怎么读。1、使用BufferedReader读取文件BufferedReader是为了提供读的效率而设计的一个包装类,它可以包装字符流。可以从字符输入流中读取文本...
    99+
    2017-06-26
    java
  • 在 Java 中读取 CSV 文件
    CSV 代表逗号分隔值,是一种非常流行的文件类型。CSV文件用于存储由逗号分隔的信息。文件的每一行都用于表示一个数据记录。在本教程中,我们将学习如何读取 CSV 文件并将其内容复制到数组或列表中。在本教程中,我们将使用仅包含三条记录的简单 ...
    99+
    2023-09-06
    java 前端 html
  • Java如何读取整个文件流
    在Java中,可以使用`InputStream`类来读取文件流。以下是一个示例代码,演示如何读取整个文件流并将其打印出来:```ja...
    99+
    2023-08-26
    Java
  • Java中读取二进制文件
    读写二进制文件常用的类有DataInputStream和DataOutputStream。 1、使用字节流读二进制文件         利用DataInputStream类读二进制文件,其实与利用FileInputStream类读文本文件及...
    99+
    2023-08-31
    java jvm
  • Java项目中读取properties文件
    点击(此处)折叠或打开...
    99+
    2023-06-03
  • java怎么读取文件?
    java中可以使用两个类来读取文件:BufferedReader和BufferedInputStream。1、使用 BufferedReader在下面的实例中,我们将看到两种使用 BufferedReader 来读取文件的方法。在这里, 我...
    99+
    2014-12-22
    java教程 java
  • Java读取resources中资源文件路径以及jar中文件无法读取如何解决
    今天小编给大家分享的是Java读取resources中资源文件路径以及jar中文件无法读取如何解决,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。Java读取resources中资源文...
    99+
    2023-07-06
  • java如何监听文件变化并读取文件
    Java中可以使用java.nio.file包中的WatchService类来监听文件的变化,并使用BufferedReader类来...
    99+
    2023-09-26
    java
  • Java如何实现读取配置文件
    在Java中,可以使用`java.util.Properties`类来读取配置文件。以下是一个简单的例子:1. 创建一个名为`con...
    99+
    2023-09-28
    Java
  • java 逐行读取文件(读取文件每一行、按行读取文件)附带示例代码
    BufferedReader 最快的读取每一行 @Test public void bufferReaderTest() { try (BufferedReader buffere...
    99+
    2023-09-11
    java IO
  • java读取zip/jar包中的文件
    1、jar vs zip: jar 文件和 zip 文件都是归档文件,并且都经过压缩。事实上,jar 文件使用与 zip 文件相同的存档和压缩技术,所以 jar 文件实际上是一种特定类型的 zip 文件。(JAR 文件本质上是一个包含可选 ...
    99+
    2023-09-03
    java jar jvm
  • JDK1.7中java.nio.file.Files如何读取文件
    这篇文章给大家分享的是有关JDK1.7中java.nio.file.Files如何读取文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JDK1.7中引入了新的文件操作类java.nio.file这个包,其中有个...
    99+
    2023-05-30
    jdk1.7 java nio
  • python中如何读取txt文件
    这期内容当中小编将会给大家带来有关python中如何读取txt文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、readline()读取第一行内容只读取文本第一行的内容,以字符串的形式返回结果with...
    99+
    2023-06-15
  • java怎么读取xml文件
    在Java中,可以使用Java内置的XML解析器来读取XML文件。下面是一个简单的示例: import javax.xml.pars...
    99+
    2023-10-23
    java
  • java怎么读取zip文件
    要读取zip文件,可以使用Java的java.util.zip包中的ZipInputStream类来实现。下面是一个简单的示例代码,...
    99+
    2023-10-26
    java
  • java中读取文本文件出现乱码
    最近遇到一个问题,Java读取文本文件(例如csv文件、txt文件等),遇到中文就变成乱码。读取代码如下:List lines=new ArrayList(); BufferedReader br = new BufferedReade...
    99+
    2017-06-04
    java 读取 文本文件 乱码
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作