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

} }

物语云-VPS-美国洛杉矶VPS无限流量云windows大带宽100M不限流量 26/月起

物语云计算怎么样?物语云计算(MonogatariCloud)是一家成立于2016年的老牌国人商家,主营国内游戏高防独服业务,拥有多家机房资源,产品质量过硬,颇有一定口碑。本次带来的是特惠活动为美国洛杉矶Cera机房的不限流量大带宽VPS,去程直连回程4837,支持免费安装Windows系统。值得注意的是,物语云采用的虚拟化技术为Hyper-v,因此并不会超售超开。一、物语云官网点击此处进入物语云...

#推荐# cmivps:全场7折,香港不限流量VPS,支持Windows系统

cmivps香港VPS带来了3个新消息:(1)双向流量改为单向流量,相当于流量间接扩大一倍;(2)Hong Kong 2T、Hong Kong 3T、Hong Kong 无限流量,这三款VPS开始支持Windows系统,如果需要中文版Windows系统请下单付款完成之后发ticket要求官方更改即可;(3)全场7折年付、8折月付优惠,优惠码有效期一个月!官方网站:https://www.cmivp...

青云互联19元/月,美国洛杉矶CN2GIA/香港安畅CN2云服务器低至;日本云主机

青云互联怎么样?青云互联美国洛杉矶cn2GIA云服务器低至19元/月起;香港安畅cn2云服务器低至19元/月起;日本cn2云主机低至35元/月起!青云互联是一家成立于2020年的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务。青云互联本站之前已经更新过很多相关文章介绍了,青云互联的机房有香港和洛杉矶,都有CN2 GIA线路、洛杉矶带高防,商家承诺试用7天,打死全额退款点击进入:青云互联...

java读写文件为你推荐
saltstacksaltwater room是什么意思?科来网络分析系统谁会用最新版的科来网络分析系统破解星空极速帐号和密码``!!!急急急```!!bloomfilterJAVA怎么弄爬虫空白代码html空格代码怎么写溢出隐藏overflow:hidden:溢出隐藏了。oncontextmenu如何禁用ImageButton的右键?mindmanager破解版请给个Mindjet MindManager PRO 15的正式版vipjrvipjr英语怎么样?靠谱吗?数秦科技奇秦科技是做什么的,大家了解过吗?spawning急救!编好C++程序后(确认无误),再编译时总出现error spawning 是什么意思?是不是系统出了问题
vps试用 七牛优惠码 本网站服务器在美国维护 阿里云邮箱登陆首页 enom mach5 个人免费空间 卡巴斯基官方免费版 lol台服官网 in域名 360云服务 免费的asp空间 帽子云排名 中国linux 华为k3 阵亡将士纪念日 电信主机托管 聚惠网 phpinfo 月付空间 更多