java读写文件java读取文件属性

java读写文件  时间:2021-07-13  阅读:()

Java读写文件的几种方法

java读取配置文件的几种方法如下: 方式一:采用ServletContext读取,读取配置文件的realpath,然后通过文件流读取出来。

因为是用ServletContext读取文件路径,所以配置文件可以放入在web-info的classes目录中,也可以在应用层级及web-info的目录中。

文件存放位置具体在eclipse工程中的表现是:可以放在src下面,也可放在web-info及webroot下面等。

因为是读取出路径后,用文件流进行读取的,所以可以读取任意的配置文件包括xml和properties。

缺点:不能在servlet外面应用读取配置信息。

方式二:采用ResourceBundle类读取配置信息, 优点是:可以以完全限定类名的方式加载资源后,直接的读取出来,且可以在非Web应用中读取资源文件。

缺点:只能加载类classes下面的资源文件且只能读取.properties文件。

java怎样读取本地文件夹下的文件

1 2 3 4 5 6 7 8 9 10 ??File?file?=?newFile("WebRoot\test.html"); ?BufferedReader?bufferedReader?=? ?newBufferedReader(newInputStreamReader(newFileInputStream(file)));????????? ????String?row?=?null; ???StringBuffer?sb?=?newStringBuffer(); ????while((row?=?bufferedReader.readLine())?!=?null)?{ ????System.out.println(row); ??????sb.append(row); ?????} ???bufferedReader?.close();

java 如何读取大文件

以下将从常规方法谈起,通过对比来说明应该如何使用java读取大文件。

1、常规:在内存中读取 读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法: Files.readLines(new File(path), Charsets.UTF_8); FileUtils.readLines(new File(path)); 这种方法带来的问题是文件的所有行都被存放在内存中,当文件足够大时很快就会导致程序抛出OutOfMemoryError 异常。

例如:读取一个大约1G的文件: @Test public void givenUsingGuava_whenIteratingAFile_thenWorks() throws IOException { String path = ... Files.readLines(new File(path), Charsets.UTF_8); } 这种方式开始时只占用很少的内存:(大约消耗了0Mb内存) 然而,当文件全部读到内存中后,我们最后可以看到(大约消耗了2GB内存): 这意味这一过程大约耗费了2.1GB的内存——原因很简单:现在文件的所有行都被存储在内存中。

把文件所有的内容都放在内存中很快会耗尽可用内存——不论实际可用内存有多大,这点是显而易见的。

此外,我们通常不需要把文件的所有行一次性地放入内存中——相反,我们只需要遍历文件的每一行,然后做相应的处理,处理完之后把它扔掉。

所以,这正是我们将要做的——通过行迭代,而不是把所有行都放在内存中。

2、文件流 FileInputStream inputStream = null; Scanner sc = null; try { inputStream = new FileInputStream(path); sc = new Scanner(inputStream, "UTF-8"); while (sc.hasNextLine()) { String line = sc.nextLine(); // System.out.println(line); } // note that Scanner suppresses exceptions if (sc.ioException() != null) { throw sc.ioException(); } } finally { if (inputStream != null) { inputStream.close(); } if (sc != null) { sc.close(); } } 这种方案将会遍历文件中的所有行——允许对每一行进行处理,而不保持对它的引用。

总之没有把它们存放在内存中:(大约消耗了150MB内存) 3、Apache Commons IO流 同样也可以使用Commons IO库实现,利用该库提供的自定义LineIterator: LineIterator it = FileUtils.lineIterator(theFile, "UTF-8"); try { while (it.hasNext()) { String line = it.nextLine(); // do something with line } } finally { LineIterator.closeQuietly(it); } 由于整个文件不是全部存放在内存中,这也就导致相当保守的内存消耗:(大约消耗了150MB内存)

JAVA 的输入输出,读取写入文件

//将内容追加到文件尾部 import java.io.FileWriter; import java.io.IOException; import essFile; /** * 将内容追加到文件尾部 */ public class AppendToFile { /** * A方法追加文件:使用essFile * @param fileName 文件名 * @param content 追加的内容 */ public static void appendMethodA(String fileName, String content){ try { // 打开一个随机访问文件流,按读写方式 essFile randomFile = new essFile(fileName, "rw"); // 文件长度,字节数 long fileLength = randomFile.length(); //将写文件指针移到文件尾。

randomFile.seek(fileLength); randomFile.writeBytes(content); randomFile.close(); } catch (IOException e){ e.printStackTrace(); } } /** * B方法追加文件:使用FileWriter * @param fileName * @param content */ public static void appendMethodB(String fileName, String content){ try { //打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件 FileWriter writer = new FileWriter(fileName, true); writer.write(content); writer.close(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { String fileName = "C:/temp/newTemp.txt"; String content = "new append!"; //按方法A追加文件 AppendToFile.appendMethodA(fileName, content); AppendToFile.appendMethodA(fileName, "append end. "); //显示文件内容 ReadFromFile.readFileByLines(fileName); //按方法B追加文件 AppendToFile.appendMethodB(fileName, content); AppendToFile.appendMethodB(fileName, "append end. "); //显示文件内容 ReadFromFile.readFileByLines(fileName); } } 本篇文章来源于:开发学院 原文链接:/2010/0323/21269_2.php

java读取文件属性

//看看吧..对你会有帮助 public class FilecTest { public static void main(String args[]) { File f=new File("c:\1.txt"); System.out.println(f.isDirectory()); //测试此抽象路径名表示的文件是否是一个目录。

System.out.println(f.getAbsoluteFile()); //返回抽象路径名的绝对路径名形式 System.out.println(f.getAbsolutePath()); //返回抽象路径名的绝对路径名字符串。

System.out.println(f.isAbsolute()); //测试此抽象路径名是否为绝对路径名 System.out.println(f.isDirectory()); //测试此抽象路径名表示的文件是否是一个目录 long modifyDate = f.lastModified(); //得到最后修改日期 if (modifyDate!=0){ System.out.println(" 最后修改日期: "+new Date(modifyDate)); //返回此抽象路径名表示的文件最后一次被修改的时间。

} System.out.println(new Date(modifyDate)); //返回此抽象路径名表示的文件最后一次被修改的时间。

System.out.println(f.length()); //返回由此抽象路径名表示的文件的长度 // System.out.println(f.renameTo(ff)); //重新命名此抽象路径名表示的文件。

} }

racknerd:美国大硬盘服务器(双路e5-2640v2/64g内存/256gSSD+160T SAS)$389/月

racknerd在促销美国洛杉矶multacom数据中心的一款大硬盘服务器,用来做存储、数据备份等是非常划算的,而且线路还是针对亚洲有特别优化处理的。双路e5+64G内存,配一个256G的SSD做系统盘,160T SAS做数据盘,200T流量每个月,1Gbps带宽,5个IPv4,这一切才389美元...洛杉矶大硬盘服务器CPU:2 * e5-2640v2内存:64G(可扩展至128G,+$64)硬...

提速啦母鸡 E5 128G 61IP 1200元

提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...

TMThosting夏季促销:VPS月付7折,年付65折,独立服务器95折,西雅图机房

TMThosting发布了一个2021 Summer Sale活动,针对西雅图VPS主机提供月付7折优惠码,年付65折优惠码,独立服务器提供95折优惠码,本轮促销活动到7月25日。这是一家成立于2018年的国外主机商,主要提供VPS和独立服务器租用业务,数据中心包括美国西雅图和达拉斯,其中VPS基于KVM架构,都有提供免费的DDoS保护,支持选择Windows或者Linux操作系统。Budget ...

java读写文件为你推荐
mdm.mdm是什么扩展名?ioeucl-ioe的学位证到底是ucl?还是后面加了一个ioe微信收款语音播报怎么设置两部手机微信收款语音播报怎么设置soapui下载SoapUi怎么安装weakhashmapJava中isEmpty方法如何使用?查字网“很”去掉双人旁读什么?jdk6java—JDK6,在SUN公司官网下载的链接,vipjrvipjr怎么样?有真实体验的来说一下民生电商民生电商与传统的电商有什么区别?系统论坛安卓系统论坛哪个好?
工信部域名备案查询 个人域名备案 免费申请域名 tk域名 java虚拟主机 本网站在美国维护 小米数据库 权嘉云 me空间社区 泉州电信 服务器监测 最漂亮的qq空间 美国独立日 web服务器搭建 lamp是什么意思 阿里云邮箱登陆地址 美国迈阿密 apnic 广州服务器托管 重庆联通服务器托管 更多