黑马程序员技术交流社区

标题: 代码问题求解决 [打印本页]

作者: Nullifier    时间: 2014-8-22 17:57
标题: 代码问题求解决
  1. import java.util.*;
  2. import java.io.*;
  3. class PropertiesDemo
  4. {
  5.         public static void main(String[] args) throws Exception
  6.         {
  7.                 //set();
  8.                 try
  9.                 {
  10.                         Properties ps=new Properties();
  11.                         get("e:\\P.txt",ps);
  12.                         set(ps);
  13.                 }
  14.                 catch (Exception e)
  15.                 {
  16.                         e.toString();
  17.                 }
  18.         }
  19.         public static void get(String files,Properties pro) throws Exception
  20.         {
  21.                 BufferedReader br=new BufferedReader(new FileReader(files));
  22.                 String line=null;
  23.                 while((line=br.readLine())!=null)
  24.                 {
  25.                         String []arr=line.split("=");
  26.                         pro.setProperty(arr[0],arr[1]);
  27.                 }
  28.         }
  29.         public static void set(Properties pro)
  30.         {
  31.                 Set<String>list=pro.stringPropertyNames();//将Properties中数据遍历返回Set集合
  32.                 for(String p:list)
  33.                 {
  34.                         System.out.println(p+"        "+pro.getProperty(p));
  35.                 }
  36.                
  37.         }
  38.        
  39. }
复制代码
从get()方法中的while循环出来就没有结果

作者: 依然超级赛亚人    时间: 2014-8-22 19:36
你的get()方法中没有输出语句...
作者: 棕榈e人    时间: 2014-8-22 20:37
求高手解答
作者: hejinzhong    时间: 2014-8-22 20:47
这个代码没有问题,唯一就是你的p.txt文件格式是否正确,是否有内容
作者: 0小菜鸟0    时间: 2014-8-22 21:02
应该还有份代码,你把Porperties代码也拿出来看看
作者: Nullifier    时间: 2014-8-22 22:09
hejinzhong 发表于 2014-8-22 20:47
这个代码没有问题,唯一就是你的p.txt文件格式是否正确,是否有内容

w=1
df=2
g=3
fb=4
vbf=5
xc=6
bs=7
vs=8
bs=10
作者: Nullifier    时间: 2014-8-22 22:10
0小菜鸟0 发表于 2014-8-22 21:02
应该还有份代码,你把Porperties代码也拿出来看看

没这是Properties的Demo
作者: Nullifier    时间: 2014-8-22 22:12
Nullifier 发表于 2014-8-22 22:09
w=1
df=2
g=3

这是 P.txt 应该没问题。在while循环中还能读取 但是出了循环就不行了 不知道为啥
作者: Nullifier    时间: 2014-8-22 22:14
依然超级赛亚人 发表于 2014-8-22 19:36
你的get()方法中没有输出语句...

get只是设置Properties set方法是读取
作者: hejinzhong    时间: 2014-8-22 22:19
Nullifier 发表于 2014-8-22 22:14
get只是设置Properties set方法是读取

我这里可以运行的!你文件是大写,你电脑没把后缀隐藏把
作者: Nullifier    时间: 2014-8-22 22:47
hejinzhong 发表于 2014-8-22 22:19
我这里可以运行的!你文件是大写,你电脑没把后缀隐藏把

额 能运行出结果?我这文件名对的了 while中能读取数据了 但是出了循环就读不出了
作者: hejinzhong    时间: 2014-8-22 23:27
Nullifier 发表于 2014-8-22 22:47
额 能运行出结果?我这文件名对的了 while中能读取数据了 但是出了循环就读不出了 ...

你循环都读完了!出去不是没了吗?
作者: 依然超级赛亚人    时间: 2014-8-23 06:53
不知道你说的出了while循环就读不出是怎样的情况,把那段代码晒晒。这段代码目前没什么问题,不过P.txt中有一个键重复,所以读出来的只是八个数而已。
作者: Nullifier    时间: 2014-8-23 08:10
hejinzhong 发表于 2014-8-22 23:27
你循环都读完了!出去不是没了吗?

但是都是一个Properties 对象啊get把文件中数据读出来,set把这个对象中的值在遍历显示,我是这么想的
作者: hejinzhong    时间: 2014-8-23 08:15
Nullifier 发表于 2014-8-23 08:10
但是都是一个Properties 对象啊get把文件中数据读出来,set把这个对象中的值在遍历显示,我是这么想的 ...

你现在写的就是这个意思,我还没搞清你说的在循环外那里读取。
作者: Nullifier    时间: 2014-8-23 08:19
依然超级赛亚人 发表于 2014-8-23 06:53
不知道你说的出了while循环就读不出是怎样的情况,把那段代码晒晒。这段代码目前没什么问题,不过P.txt中有 ...
  1. public static void get(String files,Properties pro) throws Exception
  2.         {
  3.                 BufferedReader br=new BufferedReader(new FileReader(files));
  4.                 String line=null;
  5.                 while((line=br.readLine())!=null)
  6.                 {
  7.                        
  8.                         String []arr=line.split("=");
  9.                         pro.setProperty(arr[0],arr[1]);
  10.                         //String s=pro.getProperty("w");//在这加入这句话
  11.                         //System.out.println(s)        ;//输出结果为 1 1 1 1 1这能读出数据也能调用Properties中的方法
  12.                 }
  13.                         String s=pro.getProperty("w");//但是如果在这加入这句话
  14.                         System.out.println(s)        ;//输出结果为空 就是什么结果也不显示
  15.         }
复制代码

作者: Nullifier    时间: 2014-8-23 08:22
hejinzhong 发表于 2014-8-23 08:15
你现在写的就是这个意思,我还没搞清你说的在循环外那里读取。
  1. public static void get(String files,Properties pro) throws Exception
  2.         {
  3.                 BufferedReader br=new BufferedReader(new FileReader(files));
  4.                 String line=null;
  5.                 while((line=br.readLine())!=null)
  6.                 {
  7.                        
  8.                         String []arr=line.split("=");
  9.                         pro.setProperty(arr[0],arr[1]);
  10.                         //String s=pro.getProperty("w");//在这加入这句话
  11.                         //System.out.println(s)        ;//输出结果为 1 1 1 1 1这能读出数据也能调用Properties中的方法
  12.                 }
  13.                         String s=pro.getProperty("w");//但是在这加入这句话
  14.                         System.out.println(s)        ;//输出结果为空
  15.         }
复制代码

作者: hejinzhong    时间: 2014-8-23 08:31
Nullifier 发表于 2014-8-23 08:22

你这么写没有问题,会在读取完所有信息后,输出一次值的,如果你P.txt中有w键的话。
作者: ﹑淼    时间: 2014-8-23 08:48
我的运行没问题啊,你想要什么结果
作者: Nullifier    时间: 2014-8-23 09:11
hejinzhong 发表于 2014-8-23 08:31
你这么写没有问题,会在读取完所有信息后,输出一次值的,如果你P.txt中有w键的话。 ...

不是 在while循环外就读不到值了 我想在while循环外把值读取出来 但是我这运行的显示不出结果来
作者: Nullifier    时间: 2014-8-23 09:13
﹑淼 发表于 2014-8-23 08:48
我的运行没问题啊,你想要什么结果

就是把                        String s=pro.getProperty("w");//但是在这加入这句话
                        System.out.println(s)        ;//输出结果为空
放在循环外边你能读取到值?能运行,就是不出结果啊
作者: 依然超级赛亚人    时间: 2014-8-23 09:14
本帖最后由 依然超级赛亚人 于 2014-8-23 09:16 编辑

这是我原汁原味的复制你的代码的运行结果。第一张是只在循环外加String s=pro.getProperty("w");
System.out.println(s);
语句的,显然是出了结果了,结果是正确的。
第二张是里外都加这两条语句,显然也出结果并且正确的。你的代码本身应该说没问题,至少我是这样认为。其他的问题我就不知道为什么了,让我们一起坐等,看看有没有大神级人物解决吧。

QQ图片20140823090521.jpg (33.46 KB, 下载次数: 4)

QQ图片20140823090521.jpg

QQ图片20140823090705.jpg (37.43 KB, 下载次数: 5)

QQ图片20140823090705.jpg

作者: hejinzhong    时间: 2014-8-23 09:17
Nullifier 发表于 2014-8-23 09:11
不是 在while循环外就读不到值了 我想在while循环外把值读取出来 但是我这运行的显示不出结果来 ...


你的电脑不是地球产的吗!!

作者: Nullifier    时间: 2014-8-23 09:20
D:\Work\12.png

难道真不是地球产的??

12.png (3.96 KB, 下载次数: 11)

12.png

作者: Nullifier    时间: 2014-8-23 09:26
依然超级赛亚人 发表于 2014-8-23 09:14
这是我原汁原味的复制你的代码的运行结果。第一张是只在循环外加String s=pro.getProperty("w");
System.ou ...

电脑问题?,我这就是显示不出来……
作者: Nullifier    时间: 2014-8-23 09:27
hejinzhong 发表于 2014-8-23 09:17
你的电脑不是地球产的吗!!

貌似真和电脑有关,我这Win8.1的 就是显示不出
作者: ﹑淼    时间: 2014-8-23 09:40
Nullifier 发表于 2014-8-23 09:13
就是把                        String s=pro.getProperty("w");//但是在这加入这句话
                        System.out.println(s)        ;//输出结果为 ...

我还是输出了1,你用debug调试下你的程序吧,一般都可解决

作者: Nullifier    时间: 2014-8-23 09:42
﹑淼 发表于 2014-8-23 09:40
我还是输出了1,你用debug调试下你的程序吧,一般都可解决

好吧,一样的代码为啥你们都能出结果 就我这出问题 真郁闷
作者: 戏言丶    时间: 2014-8-23 09:46
我是来学习的,还没学到的说
作者: Nullifier    时间: 2014-8-23 09:49
戏言丶 发表于 2014-8-23 09:46
我是来学习的,还没学到的说

结果就是一样的代码别人运行没事,我自己运行出毛病:Q




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2