`
l514941630
  • 浏览: 47277 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

关于File.separator

阅读更多
最近有个在页面上传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。
分享到:
评论

相关推荐

    javaFile[归类].pdf

    File file = new File("d:" + File.separator + "demo.doc"); if (!file.exists()) { try { file.createNewFile(); System.out.println(" 文件创建成功!"); } catch (IOException e) { e.printStackTrace();...

    android java.lang.IllegalArgumentException contains a path separator

    2. 使用`File.separator`常量代替硬编码的路径分隔符,以保证在不同操作系统上的兼容性。 3. 对路径进行校验,使用`PathUtils`等工具类来确保路径的有效性。 4. 当涉及到文件操作时,确保使用的是文件名而不是完整的...

    文件系统操作-自己写的

    File file = new File("D:" + File.separator + "Floder" + File.separator + "example.txt"); boolean created = file.createNewFile(); if (created) { System.out.println("文件创建成功!"); } else { System....

    tinkerDemo的两个apk可以安装试一下

    tinkerDemo简单的实现了热补丁,具体的还没尝试,安装上baseApk(app-debug-1019-15-16-03)之后,将patch_signed_7zip放置到Environment.getExternalStorageDirectory()+File.separator;+ "FixPath"+File.separator...

    java删除文件夹代码

    把分降低吧 呵呵 boolean flag = false; File file = new File(path); if (!file.exists()) { ... if (path.endsWith(File.separator)) { temp = new File(path + tempList[i]); 部分代码显示

    Java中的IO整理完整版

    接着,案例2介绍了`File`类的两个常量:`File.separator`和`File.pathSeparator`。`File.separator`用于表示当前操作系统中的路径分隔符,例如在Windows上是`\`,在Linux或Mac上是`/`。`File.pathSeparator`则是用于...

    java中的IO操作总结(四)

    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);...

    java屏幕录像(包含鼠标轨迹)生成avi媒体文件

    new File(System.getProperty("user.home")+File.separator+"Videos"); 其它: new File(System.getProperty("user.home")+File.separator+"Movies"); 我的电脑是C:\Documents and Settings\hz001\Videos这个路径 ...

    pdfbox-2.0.7.jar

    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** Maven是一个强大的项目管理和构建工具,广泛应用于Java开发中。它简化了项目的构建过程,管理依赖关系,并提供了标准化的构建生命周期。下面是详细的Maven配置步骤: 1. **下载Maven** ...

    9异常,系统属性,Math类.rar

     ●file.separator:文件分隔符,Windows环境下为“",Unix环境下为“/”;  ●user.home:用户主目录;  ●java.home:Java实时运行环境的安装目录;  ●java.ext.dirs:JDK的安装目录;  ●os.name:操作...

    java字节流和字符流[整理].pdf

    File file = new File("d:" + File.separator + "demo.txt"); // 使用追加模式创建FileOutputStream OutputStream out = new FileOutputStream(file, true); String s = "追加内容"; byte[] b = s.getBytes(); ...

    java文件复制

    temp=new File(oldPath+File.separator+file[i]); } if(temp.isFile()){ FileInputStream input = new FileInputStream(temp); FileOutputStream output = new FileOutputStream(newPath + "/" + (temp....

    Java实现文件的压缩和解压

    File f = new File(outputDirectory + File.separator + zipEntry.getName()); f.createNewFile(); in = zipFile.getInputStream(zipEntry); out = new FileOutputStream(f); byte[] by = new byte...

    java压缩文件源码--ZipUtils

    FileOutputStream fos = new FileOutputStream(getFileName(file.getPath())+File.separator+newDir(file, entry.getName())); dest = new BufferedOutputStream(fos, BUFFER); while((count = zis...

    javaIo处理

    **运行结果**:与案例1相同,但路径使用了`File.separator`常量。 ##### 案例3:删除一个文件 ```java import java.io.File; class Hello { public static void main(String[] args) { String fileName = "D:" ...

    java 基础知识资料下载

    File file = new File("D:" + File.separator + "cs.txt"); if (file.exists()) { file.delete(); System.out.println("文件存在且已经删除"); } else { System.out.println("文件不存在"); } } } ``` - ...

    IO总结处理

    为了确保程序的可移植性,Java提供了`File.separator`常量来获取当前操作系统的路径分隔符,同时`File.pathSeparator`常量用来获取路径分隔符,如在Windows下用于分隔多个环境变量值时使用`;`。 示例代码如下: ``...

    Java中实现复制文件或文件夹

    String sourceDirTemp = sourceDir + File.separator + file[i].getName(); String targetDirTemp = targetDir + File.separator + file[i].getName(); copyDirectiory(sourceDirTemp, targetDirTemp); } } } ...

    12.IO-intrudute.doc

    File file = new File(File.separator + "helo.txt"); System.out.println(file.createNewFile()); ``` 9. **递归操作**: 虽然示例中的递归方法`calc()`与文件I/O无关,但它展示了如何使用递归来解决问题。在...

Global site tag (gtag.js) - Google Analytics