`
- 浏览:
47014 次
- 性别:
- 来自:
成都
-
最近有个在页面上传Excel文件至服务器指定目录并进行数据校验、最后入库及进行进一步处理的应用情境,我写好代码在模拟环境下测试,完全没问题;但客户试用的时候,却老是报告“No such file or diretory ”的异常,上传不了。后来发现是文件路径的问题。我的模拟测试环境是windows+tomcat,而客户的环境是linux+tomcat,文件路径的分隔符在windows系统和linux系统中是不一样。
比如说要在temp目录下建立一个test.txt文件,在Windows下应该这么写:
File file1 = new File ("C:\tmp\test.txt");
在Linux下则是这样的:
File file2 = new File ("/tmp/test.txt");
如果要考虑跨平台,则最好是这么写:
File myFile = new File("C:" + File.separator + "tmp" + File.separator, "test.txt");
File类有几个类似separator的静态字段,都是与系统相关的,在编程时应尽量使用。
separatorChar
public static final char separatorChar
与系统有关的默认名称分隔符。此字段被初始化为包含系统属性 file.separator 值的第一个字符。在 UNIX 系统上,此字段的值为 '/';在 Microsoft Windows 系统上,它为 '\'。
separator
public static final String separator
与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。此字符串只包含一个字符,即 separatorChar。
pathSeparatorChar
public static final char pathSeparatorChar
与系统有关的路径分隔符。此字段被初始为包含系统属性 path.separator 值的第一个字符。此字符用于分隔以路径列表 形式给定的文件序列中的文件名。在 UNIX 系统上,此字段为 ':';在 Microsoft Windows 系统上,它为 ';'。
pathSeparator
public static final String pathSeparator
与系统有关的路径分隔符,为了方便,它被表示为一个字符串。此字符串只包含一个字符,即 pathSeparatorChar。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
File file = new File("d:" + File.separator + "demo.doc"); if (!file.exists()) { try { file.createNewFile(); System.out.println(" 文件创建成功!"); } catch (IOException e) { e.printStackTrace();...
File file = new File("D:" + File.separator + "Floder" + File.separator + "example.txt"); boolean created = file.createNewFile(); if (created) { System.out.println("文件创建成功!"); } else { System....
tinkerDemo简单的实现了热补丁,具体的还没尝试,安装上baseApk(app-debug-1019-15-16-03)之后,将patch_signed_7zip放置到Environment.getExternalStorageDirectory()+File.separator;+ "FixPath"+File.separator...
2. 使用`File.separator`常量代替硬编码的路径分隔符,以保证在不同操作系统上的兼容性。 3. 对路径进行校验,使用`PathUtils`等工具类来确保路径的有效性。 4. 当涉及到文件操作时,确保使用的是文件名而不是完整的...
把分降低吧 呵呵 boolean flag = false; File file = new File(path); if (!file.exists()) { ... if (path.endsWith(File.separator)) { temp = new File(path + tempList[i]); 部分代码显示
接着,案例2介绍了`File`类的两个常量:`File.separator`和`File.pathSeparator`。`File.separator`用于表示当前操作系统中的路径分隔符,例如在Windows上是`\`,在Linux或Mac上是`/`。`File.pathSeparator`则是用于...
String path = File.separator + "home" + File.separator + "siu" + File.separator + "work" + File.separator + "demo.txt"; Person p1 = new Person("zhangsan",12); Person p2 = new Person("lisi",14);...
new File(System.getProperty("user.home")+File.separator+"Videos"); 其它: new File(System.getProperty("user.home")+File.separator+"Movies"); 我的电脑是C:\Documents and Settings\hz001\Videos这个路径 ...
String path=imgDir+File.separator; if(new File(path).exists()==false){ new File(path).mkdirs(); } ImageIO.write(image, "PNG", new File(imgDir+File.separator+i+".png")); }...
**如何配置Maven** Maven是一个强大的项目管理和构建工具,广泛应用于Java开发中。它简化了项目的构建过程,管理依赖关系,并提供了标准化的构建生命周期。下面是详细的Maven配置步骤: 1. **下载Maven** ...
●file.separator:文件分隔符,Windows环境下为“",Unix环境下为“/”; ●user.home:用户主目录; ●java.home:Java实时运行环境的安装目录; ●java.ext.dirs:JDK的安装目录; ●os.name:操作...
File file = new File("d:" + File.separator + "demo.txt"); // 使用追加模式创建FileOutputStream OutputStream out = new FileOutputStream(file, true); String s = "追加内容"; byte[] b = s.getBytes(); ...
temp=new File(oldPath+File.separator+file[i]); } if(temp.isFile()){ FileInputStream input = new FileInputStream(temp); FileOutputStream output = new FileOutputStream(newPath + "/" + (temp....
File f = new File(outputDirectory + File.separator + zipEntry.getName()); f.createNewFile(); in = zipFile.getInputStream(zipEntry); out = new FileOutputStream(f); byte[] by = new byte...
FileOutputStream fos = new FileOutputStream(getFileName(file.getPath())+File.separator+newDir(file, entry.getName())); dest = new BufferedOutputStream(fos, BUFFER); while((count = zis...
**运行结果**:与案例1相同,但路径使用了`File.separator`常量。 ##### 案例3:删除一个文件 ```java import java.io.File; class Hello { public static void main(String[] args) { String fileName = "D:" ...
File file = new File("D:" + File.separator + "cs.txt"); if (file.exists()) { file.delete(); System.out.println("文件存在且已经删除"); } else { System.out.println("文件不存在"); } } } ``` - ...
为了确保程序的可移植性,Java提供了`File.separator`常量来获取当前操作系统的路径分隔符,同时`File.pathSeparator`常量用来获取路径分隔符,如在Windows下用于分隔多个环境变量值时使用`;`。 示例代码如下: ``...
String sourceDirTemp = sourceDir + File.separator + file[i].getName(); String targetDirTemp = targetDir + File.separator + file[i].getName(); copyDirectiory(sourceDirTemp, targetDirTemp); } } } ...
File file = new File(File.separator + "helo.txt"); System.out.println(file.createNewFile()); ``` 9. **递归操作**: 虽然示例中的递归方法`calc()`与文件I/O无关,但它展示了如何使用递归来解决问题。在...