免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 1659 | 回复: 11
打印 上一主题 下一主题

io包里面的一个疑问~ [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-14 05:56 |只看该作者 |倒序浏览
在Windows系统下

c:\windows\
c:\windows

这两个有什么不同~
大家可以用list的方法读一下里面的文件列表~

找到问题的仁兄请讨论一下~

需要自己动手做实验

论坛徽章:
0
2 [报告]
发表于 2005-03-14 12:54 |只看该作者

io包里面的一个疑问~

你的程序怎么写的?我没有看出又什么区别啊?

论坛徽章:
0
3 [报告]
发表于 2005-03-14 13:47 |只看该作者

io包里面的一个疑问~

[quote]原帖由 "sakulagi"]你的程序怎么写的?我没有看出又什么区别啊?[/quote 发表:


在这里当然看不出来有什么区别~

如果不加这个"\"的话出来的全是文件,而加上的话出来的才是目录和文件

JAVA把文件夹看做是包含其他文件的文件,是一个文件的容器

但就这么区区一个"\"就会出现乱子

而且API中没有指出这点,我不知道是我这的事还是SUN的事情

所以才麻烦有兴趣的朋友一起研究一下!

论坛徽章:
0
4 [报告]
发表于 2005-03-14 14:44 |只看该作者

io包里面的一个疑问~

我没有实验过SUN的jdk,不过IBM JDK 1.4.1运行的结果是没有任何区别。这是我的程序。俺是“看”俺程序的结果,然后没有“看”出区别来。
楼主用的是什么版本的JDK?


  1. /*
  2. * Created on 2005-3-14
  3. *
  4. * TODO To change the template for this generated file go to
  5. * Window - Preferences - Java - Code Style - Code Templates
  6. */
  7. package test.io;

  8. import java.io.File;

  9. /**
  10. * @author Edward
  11. *
  12. * TODO To change the template for this generated type comment go to Window -
  13. * Preferences - Java - Code Style - Code Templates
  14. */
  15. public class DirListTest {
  16.         public DirListTest() {
  17.         }

  18.         public static void main(String[] args) {
  19.                 File d1 = new File("c:\\windows");
  20.                 File d2 = new File("c:\\windows\\");
  21.                 String[] l1 = d1.list();
  22.                 String[] l2 = d2.list();
  23.                 DirListTest dlt = new DirListTest();
  24.                 dlt.log(l1);
  25.                 dlt.log(l2);
  26.         }

  27.         /**
  28.          * @param l1
  29.          */
  30.         private void log(String[] ss) {
  31.                 System.out.println("Logging Start...");
  32.                 // TODO Auto-generated method stub
  33.                 int len = ss.length;
  34.                 for (int i = 0; i < len; i++) {
  35.                         System.out.println(ss[i]);
  36.                 }
  37.                 System.out
  38.                                 .println("Logging End\n"
  39.                                                 + "-----------------------------------------------------------------");
  40.         }
  41. }
复制代码

论坛徽章:
0
5 [报告]
发表于 2005-03-14 14:51 |只看该作者

io包里面的一个疑问~

大多API会有检测最后反斜杠的功能,如果没有便会加上
而某些API如没有这种检测机制则会出错

论坛徽章:
0
6 [报告]
发表于 2005-03-14 14:56 |只看该作者

io包里面的一个疑问~

如果zihaoyahui      说的情况确实是这样,那么感觉像是SUN JRE的bug

论坛徽章:
0
7 [报告]
发表于 2005-03-14 15:00 |只看该作者

io包里面的一个疑问~

我用的是JDK1.3 SUN的.
但我看的是1.5的文档,方法后面没有标记什么特殊情况啊

论坛徽章:
0
8 [报告]
发表于 2005-03-14 15:49 |只看该作者

io包里面的一个疑问~

没有标记,如果行为不一致,那就是BUG了。

论坛徽章:
0
9 [报告]
发表于 2005-03-14 17:43 |只看该作者

io包里面的一个疑问~

[quote]原帖由 "sakulagi"]没有标记,如果行为不一致,那就是BUG了。[/quote 发表:

不能这么早下结论,我想SUN不会犯这样的错误.

因为WINDOWS和LINUX的磁盘系统有差别,也没准是WINDOWS的原故呢.

再做做实验最好.

论坛徽章:
0
10 [报告]
发表于 2005-03-14 20:11 |只看该作者

io包里面的一个疑问~

我用Sun的JDK1.4.2_07测试过,结果是一样的。

  1. public static void main(String[] args)
  2.     {
  3.         File file = new File("c:/winnt/");
  4.         System.out.println(file.list().length);
  5.     }
复制代码

无论有没有最后的/或者\\,输出都是270。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP