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

} }

bgpto:日本独立服务器6.5折($120起),新加坡独立服务器7.5折($93起)

bgp.to在对日本东京的独立服务器进行6.5折终身优惠促销,低至$120/月;对新加坡独立服务器进行7.5折终身优惠促销,低至$93/月。所有服务器都是直连国内,速度上面相比欧洲、美国有明显的优势,特别适合建站、远程办公等多种用途。官方网站:https://www.bgp.to/dedicated.html主打日本(东京、大阪)、新加坡、香港(CN)、洛杉矶(US)的服务器业务!日本服务器CPU...

v5server:香港+美国机房,优质CN2网络云服务器,7折优惠,低至35元/月

v5net当前对香港和美国机房的走优质BGP+CN2网络的云服务器进行7折终身优惠促销,每个客户进线使用优惠码一次,额外有不限使用次数的终身9折优惠一枚!V5.NET Server提供的都是高端网络线路的机器,特别优化接驳全世界骨干网络,适合远程办公、跨境贸易、网站建设等用途。 官方网站:https://v5.net/cloud.html 7折优惠码:new,仅限新客户,每人仅限使用一次 9...

美国高防云服务器 1核 1G 10M 38元/月 百纵科技

百纵科技:美国云服务器活动重磅来袭,洛杉矶C3机房 带金盾高防,会员后台可自助管理防火墙,添加黑白名单 CC策略开启低中高.CPU全系列E52680v3 DDR4内存 三星固态盘列阵。另有高防清洗!百纵科技官网:https://www.baizon.cn/联系QQ:3005827206美国洛杉矶 CN2 云服务器CPU内存带宽数据盘防御价格活动活动地址1核1G10M10G10G38/月续费同价点击...

java读写文件为你推荐
抓包你好,抓包啥意思?需要买软件吗?诺诺云代账上海的亮证节有讲到诺诺云代账,产品如何?图片地址如何根据一张图片的地址找到它在哪发的bloomfilter布隆过滤器既然有错误率,为什么还能应用在key-value系统中?策略组组策略是什么,命令是什么???溢出隐藏overflow:hidden是什么意思?oracle索引Oracle中有多少种索引类型arc是什么意思arcsin中arc是什么的缩写? 怎么读? ?丁奇请全面剖析一下黑胡子丁奇这个人物。网页微信客户端手机微信客户端怎么打开网页
长沙服务器租用 域名备案网站 ion 台湾服务器 国外私服 账号泄露 论坛空间 牛人与腾讯客服对话 免费网站申请 个人域名 帽子云 lol台服官网 什么是服务器托管 免费申请个人网站 免费cdn 支付宝扫码领红包 移动服务器托管 网购分享 网站加速软件 免费个人主页 更多