- 浏览: 222731 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
junzi2013:
df
黑马程序员:MyEclipse9 常用快捷键 中英文对照 及 快速get set方法 -
junzi2013:
dfsdafadsfsd
黑马程序员:MyEclipse9 常用快捷键 中英文对照 及 快速get set方法 -
idealab:
博主说的OpenCSV, JavaCSV, SuperCSV都 ...
csv调研 -
tanxin:
楼主怎么解决这个问题的呢?
坑爹的zookeer -
yy22258867:
:twisted:
黑马程序员19-7:foreach遍历核心源码,遍历HashMap需要用map.keySet()或map.entrySet()
FileReader,BufferedReader 模拟load方法,FileInputStream ,注册机
package cn.itcast.io.p2.properties; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Properties; import java.util.Set; public class PropertiesDemo { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { /* * Map * |--Hashtable * |--Properties: * * Properties集合: * 特点: * 1,该集合中的键和值都是字符串类型。 * 2,集合中的数据可以保存到流中,或者从流获取。 * * 通常该集合用于操作以键值对形式存在的配置文件。 * * */ // methodDemo_4(); myLoad(); test(); } //对已有的配置文件中的信息进行修改。 /* * 读取这个文件。 * 并将这个文件中的键值数据存储到集合中。 * 在通过集合对数据进行修改。 * 在通过流将修改后的数据存储到文件中。 */ public static void test() throws IOException{ //读取这个文件。 File file = new File("info.txt"); if(!file.exists()){ file.createNewFile(); } FileReader fr = new FileReader(file); //创建集合存储配置信息。 Properties prop = new Properties(); //将流中信息存储到集合中。 prop.load(fr); prop.setProperty("wangwu", "16"); FileWriter fw = new FileWriter(file); //配置文件存储方式 prop.store(fw,""); // prop.list(System.out); fw.close(); fr.close(); } //模拟一下load方法。 public static void myLoad() throws IOException{ Properties prop = new Properties(); BufferedReader bufr = new BufferedReader(new FileReader("info.txt")); String line = null; while((line=bufr.readLine())!=null){ if(line.startsWith("#")) continue; String[] arr = line.split("="); //用i遍历就可以 // System.out.println(arr[0]+"::"+arr[1]); prop.setProperty(arr[0], arr[1]); } prop.list(System.out); bufr.close(); } //读取配置文件的方法 public static void methodDemo_4() throws IOException { Properties prop = new Properties(); //集合中的数据来自于一个文件。 //注意;必须要保证该文件中的数据是键值对。 //需要使用到读取流。文件输入流 FileInputStream fis = new FileInputStream("info.txt"); //使用load方法。 prop.load(fis); prop.list(System.out); } //添加/修改配置文件的内容 public static void methodDemo_3() throws IOException { Properties prop = new Properties(); //存储元素。 prop.setProperty("zhangsan","30"); prop.setProperty("lisi","31"); prop.setProperty("wangwu","36"); prop.setProperty("zhaoliu","20"); //想要将这些集合中的字符串键值信息持久化存储到文件中。 //需要关联输出流。文件输出流 FileOutputStream fos = new FileOutputStream("info.txt"); //将集合中数据存储到文件中,使用store方法。 prop.store(fos, "info"); fos.close(); } /** * 演示Properties集合和流对象相结合的功能。 */ //列出配置文件到控制台 public static void methodDemo_2(){ Properties prop = new Properties(); //存储元素。 // prop.setProperty("zhangsan","30"); // prop.setProperty("lisi","31"); // prop.setProperty("wangwu","36"); // prop.setProperty("zhaoliu","20"); prop = System.getProperties(); prop.list(System.out); } /* * Properties集合的存和取。 */ //取出配置文件的信息 public static void propertiesDemo(){ //创建一个Properties集合。 Properties prop = new Properties(); //存储元素。 prop.setProperty("zhangsan","30"); prop.setProperty("lisi","31"); prop.setProperty("wangwu","36"); prop.setProperty("zhaoliu","20"); //修改元素。 prop.setProperty("wangwu","26"); //取出所有元素。 Set<String> names = prop.stringPropertyNames(); for(String name : names){ String value = prop.getProperty(name); System.out.println(name+":"+value); } } }
package cn.itcast.io.p2.properties; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; /* * 定义功能,获取一个应用程序运行的次数,如果超过5次,给出使用次数已到请注册的提示。并不要在运行程序。 * * 思路: * 1,应该有计数器。 * 每次程序启动都需要计数一次,并且是在原有的次数上进行计数。 * 2,计数器就是一个变量。 突然冒出一想法,程序启动时候进行计数,计数器必须存在于内存并进行运算。 * 可是程序一结束,计数器消失了。那么再次启动该程序,计数器又重新被初始化了。 * 而我们需要多次启动同一个应用程序,使用的是同一个计数器。 * 这就需要计数器的生命周期变长,从内存存储到硬盘文件中。 * * 3,如何使用这个计数器呢? * 首先,程序启动时,应该先读取这个用于记录计数器信息的配置文件。 * 获取上一次计数器次数。 并进行试用次数的判断。 * 其次,对该次数进行自增,并自增后的次数重新存储到配置文件中。 * * * 4,文件中的信息该如何进行存储并体现。 * 直接存储次数值可以,但是不明确该数据的含义。 所以起名字就变得很重要。 * 这就有了名字和值的对应,所以可以使用键值对。 * 可是映射关系map集合搞定,又需要读取硬盘上的数据,所以map+io = Properties. * * * */ public class PropertiesTest { /** * @param args * @throws IOException * @throws Exception */ public static void main(String[] args) throws IOException { getAppCount(); } public static void getAppCount() throws IOException{ //将配置文件封装成File对象。 File confile = new File("count.properties"); //用对象判断,如果不存在就创建文件 if(!confile.exists()){ confile.createNewFile(); } //用文件字节输入流操作 FileInputStream fis = new FileInputStream(confile); Properties prop = new Properties(); prop.load(fis); //从集合中通过键获取次数。 String value = prop.getProperty("time"); //定义计数器。记录获取到的次数。 int count =0; if(value!=null){ count = Integer.parseInt(value); if(count>=5){ // System.out.println("使用次数已到,请注册,给钱!"); // return; throw new RuntimeException("使用次数已到,请注册,给钱!"); } } count++; //将改变后的次数重新存储到集合中。 prop.setProperty("time", count+""); FileOutputStream fos = new FileOutputStream(confile); prop.store(fos, ""); fos.close(); fis.close(); } }
详细请查看:http://edu.csdn.net/heima -------
发表评论
-
Java中的IO整理完整版
2013-02-15 17:23 704http://developer.51cto.com/art/ ... -
Myeclipse中导入zip文件查看源代码
2012-09-21 23:35 1053用Myeclipse的时候,出现无法查看源码的话,导入jdk文 ... -
==与equals
2012-09-13 20:15 652一般基本数据类型的比较用 == 当涉及到对象、字符串的时候,就 ... -
多线程课程002:线程范围内的共享变量
2012-09-13 16:47 953package cn.itcast.heima2; ... -
多线程课程001:线程安全的问题
2012-09-13 14:37 810下面的做法,会发现输出结果被打断了。 package co ... -
多线程课程001:线程安全的问题
2012-09-13 11:14 794package com.lee.thread; pu ... -
内部类的实际应用
2012-09-13 11:01 666public class TraditionalThreadS ... -
Java接口
2012-09-11 12:07 765Java接口的方法只能是抽象的和公开的,Java接口不能有构造 ... -
移位运算符
2012-09-11 09:31 844移位运算符 <<左移 a<<b,a转 ... -
【总结】gridbaglayout布局管理器
2012-08-15 11:19 692http://blog.sina.com.cn/s/blog_ ... -
【练习_00010】java不重复随机数
2012-08-14 01:26 698package com.heima.test; impo ... -
【练习】判断一个字符串中某些字段出现的次数
2012-08-14 01:08 973package com.heima.test; im ... -
选择、冒泡、折半排序查找方法
2012-08-13 15:06 1217import java.util.Arrays; i ... -
自己写的杨辉三角
2012-08-12 16:41 806package com.lee.graphic; p ... -
交换两个数的位置,不用中间变量
2012-08-06 02:28 1113a ^= b; b ^= a; a ^= b; 1 ... -
未解问题,定时器无法自定义切换时间
2012-07-30 18:08 1009package com.heima.test004.enu ... -
黑马程序员:设计模式,享元模式flyweight
2012-07-23 02:13 0如果有很多很小的东西,对象,当他们有很多属性是相同的,就可以把 ... -
黑马程序员:for综合图形整合结晶
2012-07-23 01:16 801package Graph; public clas ... -
JS: js获取字符串长度
2012-07-20 18:01 0<SCRIPT LANGUAGE="Jav ... -
传智27-2: 模拟Tocat浏览器,写网页蜘蛛爬虫,抓取网页信息
2012-07-12 17:03 0package cn.itcast.net.p2.ie_s ...
相关推荐
在Java开发中,Properties文件是常用的配置文件类型,它用于存储键值对,方便程序读取和使用配置信息。本文将详细介绍六种使用J2SE API(Java标准版API)来读取Properties文件的方法,帮助开发者更好地理解和操作这...
在Java编程中,读取配置文件是常见的任务,这些配置文件可以是XML、properties或纯文本(txt)格式。配置文件通常用于存储应用程序的设置、连接信息和其他动态可配置的数据,以便于在运行时访问和修改。下面我们将...
在Java编程中,Properties文件是用于存储配置信息的文本文件,通常以键值对的形式存在,广泛应用于系统配置、国际化和本地化等场景。本文将详细介绍六种在Java中解析和读取Properties文件的方法。 1. **使用...
在Java编程中,读取`properties`文件是常见的任务,用于存储配置信息或者系统设置。以下将详细讲解六种不同的方法来实现这一功能。 1. **使用Properties类** Java的标准库提供了`java.util.Properties`类,它是...
首先,Java提供了多种方式来读取配置文件,包括使用`java.io`包中的`FileReader`和`BufferedReader`,或者使用`java.nio`包的`Files`类。此外,`java.util.Properties`类是处理配置文件的一种常见方法,它特别适用于...
如果配置文件位于文件系统的任意位置,我们可以使用`FileReader`和`BufferedReader`结合`Properties`类来读取。这种方法更加灵活,因为它可以处理任何路径的文件: ```java Properties properties = new ...
在上述代码中,`loadProperties()`方法加载指定名称的资源文件,并返回一个`Properties`对象,`parseKeyValues()`则将`Properties`对象转换为`KeyValue`对象的列表,便于后续操作。 通过这两个类,我们可以方便地...
为了读取配置文件,可以使用`FileReader`和`BufferedReader`: ```java File configFile = new File("config.txt"); BufferedReader reader = new BufferedReader(new FileReader(configFile)); String line; ...
在这个场景中,我们关注的是“java文件读写”,特别是读取`properties`配置文件和处理目录及文件的操作。下面我们将详细探讨这两个主题。 首先,`properties`配置文件是Java应用中常用的一种存储配置信息的方式。...
- **解析资源文件**:使用`Properties.load(InputStream)`方法加载文件内容。 - **加载资源文件流**:通过`InputStream`、`FileInputStream`或`ClassLoader.getResourceAsStream()`等方式加载资源文件。 在实际...
我们可以通过`load()`方法读取文件,`store()`方法保存文件。例如: ```java import java.io.*; import java.util.Properties; public class PropertiesFileIO { public static void main(String[] args) { ...
通过`Properties.load()` 加载文件,然后使用`Properties.setProperty()` 修改键值,最后用`Properties.store()` 写回文件。 2. 数据库操作: 在Java中,我们通常使用JDBC(Java Database Connectivity)来访问...
- 对于配置文件、文本资源等,需要确认其实际编码,并在读取时指定正确编码,例如: ```java Properties prop = new Properties(); prop.load(new FileInputStream("config.properties"), "UTF-8"); ``` 7. **...
例如,使用`new BufferedReader(new FileReader("file.txt"))`读取文件,`BufferedReader.readLine()`逐行读取,`PrintWriter`则用于写入。 Property文件是Java应用程序常用的配置文件,通常以.key=value格式存储...
1. **资源文件**:使用`Properties`加载资源文件时,文件通常以ISO-8859-1编码,需要使用`new Properties()`的重载方法,指定UTF-8编码加载,如`props.load(new FileInputStream(file), "UTF-8")`。 六、**字符串...
在实际开发中,我们通常通过Class类的getClassLoader().getResourceAsStream()方法获取类路径下的资源文件,例如配置文件,然后用Properties类进行读取。 其次,装饰者模式是设计模式中的一种,遵循开闭原则,即对...
第五章 Properties类 Properties类是Java中用来处理配置文件的,它可以加载和保存键值对数据。例如,加载配置文件: ```java Properties props = new Properties(); props.load(new FileInputStream("config....
如`properties`文件中的中文乱码,需在读取时指定编码,例如`Properties prop = new Properties(); prop.load(new FileInputStream(file), "UTF-8");` 总结来说,Java处理中文乱码的关键在于确保字符编码的一致性...
- **Properties**: 存储和读取键值对字符串,常用于配置文件。 ```java Properties props = new Properties(); props.load(new FileInputStream("config.properties")); String username = props.getProperty(...