java创建文件中分隔符,系统可移植问题!

[复制链接]
查看11 | 回复7 | 2011-9-13 12:58:46 | 显示全部楼层 |阅读模式
importjava.io.*;publicclassFileText{publicstaticvoidmain(String[]args)throwsException{FilefDir=newFile(File.separator);StringsDir=\"java\"File.separator\"1.txt\";Filef=newFile(fDir,sDir);f.createNewFile();}}假设E盘有java目录class文件在该目录下生成,以上代码执行后会在E:\\java目录下创建1.txt文件,以上代码移值到其他系统台平下也是可行的。那么如果我在有个目录d:\\java,要在这里面创建1.txt文件importjava.io.*;publicclassFileText{publicstaticvoidmain(String[]args)throwsException{Filef=newFile(\"D:\"File.separator\"java\",\"1.txt\");f.createNewFile();}}以上代码在UNIX系统下可行吗?其他系统上可行吗?\":\"这个字符能够被解析吗?请问是否还需要用File类中的字段来替换这个分隔符,如果要换应该怎么写这个指定盘符及目录来创建文件?
回复

使用道具 举报

千问 | 2011-9-13 12:58:46 | 显示全部楼层
一般项目都用相对路径,你那样就写死了。追问你的意思是要让JAVA虚拟机在Class文件相对路径的根目录下执行吗?
回复

使用道具 举报

千问 | 2011-9-13 12:58:46 | 显示全部楼层
我不明白为什么一定要用系统的物理全路径
回复

使用道具 举报

千问 | 2011-9-13 12:58:46 | 显示全部楼层
比如说*.class文件放在E:\\java目录下,而这个文件要求在D:\\java目录下创建1.txt文件,那不是要指点全路径目录吗?大哥有好的方法说说看!我想学学
回复

使用道具 举报

千问 | 2011-9-13 12:58:46 | 显示全部楼层
你项目运行时的项目文件就是类路径的根目录,假设你在运行project下的src下的com.baidu的项目,baidu文件夹下有你的创建文件的类createFlieDemo,在此类里newFile(\"src\"File.separator\"com\"File.separator\"baidu\"File.separator\"1.txt\");此时,在com.baidu的文件夹下就会创建1.txt文件说明:project目录就是你的当前工作目录,编译器会默认添加到类路径
回复

使用道具 举报

千问 | 2011-9-13 12:58:46 | 显示全部楼层
不可行,UNIX上没有形如d:\\java这样的路径,应该是/usr/java这样的路径追问pathSeparator这个字段能用得上吗,API里面不是说代表“:”吗?pathSeparator在什么情况下才用得着,请给予指点!
回复

使用道具 举报

千问 | 2011-9-13 12:58:46 | 显示全部楼层
记事本里面的换行符是\\r\\n...往里面写数据的时候需要注意。。可能你写成\\n了吧。。补充你的提问。。。。那个分隔符就是\\n。。你要明白记事本也是一个应用程序。。记事本打开文本文件的时候。。他是读到\\r\\n才换行。。但是写字板是读到\\r\\n或则\\n都换行。。所以就那样了。。大部分应用程序打开文本文是两种换行都支持的。。记事本是只支持\\r\\n换行..
回复

使用道具 举报

千问 | 2011-9-13 12:58:46 | 显示全部楼层
使用separator获取分隔符,在unix下面是能跑的,在windows和linux能跑的,其实windows也是支持“/”斜线的所以直接使用“/”,一般也是不会出问题的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行