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)); //重新命名此抽象路径名表示的文件。

} }

LightNode(7.71美元),免认证高质量香港CN2 GIA

LightNode是一家位于香港的VPS服务商.提供基于KVM虚拟化技术的VPS.在提供全球常见节点的同时,还具备东南亚地区、中国香港等边缘节点.满足开发者建站,游戏应用,外贸电商等应用场景的需求。新用户注册充值就送,最高可获得20美元的奖励金!成为LightNode的注册用户后,还可以获得属于自己的邀请链接。通过你的邀请链接带来的注册用户,你将直接获得该用户的消费的10%返佣,永久有效!平台目前...

QQ防红跳转短网址生成网站源码(91she完整源码)

使用此源码可以生成QQ自动跳转到浏览器的短链接,无视QQ报毒,任意网址均可生成。新版特色:全新界面,网站背景图采用Bing随机壁纸支持生成多种短链接兼容电脑和手机页面生成网址记录功能,域名黑名单功能网站后台可管理数据安装说明:由于此版本增加了记录和黑名单功能,所以用到了数据库。安装方法为修改config.php里面的数据库信息,导入install.sql到数据库。...

wordpress专业外贸建站主题 WordPress专业外贸企业网站搭建模版

WordPress专业外贸企业网站搭建模版,特色专业外贸企业风格 + 自适应网站开发设计 通用流行的外贸企业网站模块 + 更好的SEO搜索优化和收录 自定义多模块的产品展示功能 + 高效实用的后台自定义模块设置!采用标准的HTML5+CSS3语言开发,兼容当下的各种主流浏览器: IE 6+(以及类似360、遨游等基于IE内核的)、Firefox、Google Chrome、Safari、Opera...

java读写文件为你推荐
元宝网元宝网里面的一个币是真的投资赚钱吗图片地址怎么获得图片地址fcloseC语言fclose错误天融信防火墙笔记本怎么登陆天融信防火墙网页微信客户端什么叫微信网页版?和电脑版是一回事吗?radius认证如何写一个C#的Radius认证客户端民生电商民生电商招的仓库操作工是干什么的ruby语言Ruby是一种什么样的语言,主要用来做什么,现在有一家公司让我从java转ruby,我很犹豫?新手怎么制作表格如何学会制作表格?杭州营销型网站苏州网站推广有哪些?
lnmp lamp duniu 国外主机 technetcal 息壤主机 免费网络电视 主机合租 华为网络硬盘 135邮箱 双12 免费的asp空间 免费的域名 西安主机 个人免费邮箱 广州虚拟主机 永久免费空间 lamp兄弟连 主机返佣 广州服务器托管 更多