java中使用File的问题

shouhuzhiaicq 2014-05-08 10:40:10
最近在使用Java判断文件是不是存在时,使用了File,如下:
File ff=new File("/a.txt");
System.out.println(ff);
if (ff.exists()) {
System.out.println("exist");
}

打印出来的ff是\a.txt,斜杠变成了反斜杠,有没有什么办不让/a.txt变成\a.txt?
...全文
184 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shouhuzhiaicq 2014-05-09
  • 打赏
  • 举报
回复
引用 1 楼 oh_Maxy 的回复:
\ 是windows的文件路径分隔符,一般new File的时候\需要写成\\ (因为\又是java的转移符),或者直接一个/表示路径分隔符。 但是打印的时候,路径分隔符都是取当前系统的路径分隔符的。
那有没有什么办法不让/a.txt变为\a.txt?我的/a.txt表示的是服务器上根目录下的文件,但是用ff.exists()时就找不到文件/a.txt,因为变成了\a.txt
oh_Maxy 2014-05-09
  • 打赏
  • 举报
回复
\ 是windows的文件路径分隔符,一般new File的时候\需要写成\\ (因为\又是java的转移符),或者直接一个/表示路径分隔符。 但是打印的时候,路径分隔符都是取当前系统的路径分隔符的。
oh_Maxy 2014-05-09
  • 打赏
  • 举报
回复
引用 2 楼 shouhuzhiaicq 的回复:
[quote=引用 1 楼 oh_Maxy 的回复:] \ 是windows的文件路径分隔符,一般new File的时候\需要写成\\ (因为\又是java的转移符),或者直接一个/表示路径分隔符。 但是打印的时候,路径分隔符都是取当前系统的路径分隔符的。
那有没有什么办法不让/a.txt变为\a.txt?我的/a.txt表示的是服务器上根目录下的文件,但是用ff.exists()时就找不到文件/a.txt,因为变成了\a.txt[/quote] 用System.getProperty(String key) ,key为"file.separator" 文件分隔符(在 UNIX 系统中是“/”) (参见Java API,System类章节)。 如果还不行,就是你的路径真的搞错了(比如绝对路径,比如Unix的$HOME等)

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧