`
bmqnc
  • 浏览: 126063 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java中File.separator的pitfall

    博客分类:
  • java
阅读更多
先上代码:
import java.io.*;

public class Test{
	
	public static void main(String[] args){
		String regex=File.separator+File.separator+File.separator+File.separator;
		String constant="\\\\";
		
		System.out.println(File.separator);
		System.out.println(File.separator.equals("\\"));
		
		String s="a\\b\\c";
		
		System.out.println(regex.equals(constant));
		
		String s1[]=s.split(constant);
		for(String tem:s1){
			System.out.println("1:"+tem);
		}
		String regex2=File.separator+File.separator;
		String s2[]=s.split(regex2);
		for(String tem:s2){
			System.out.println("2:"+tem);
		}
	}
		
}


假设系统是在windows底下,那么File.separator的值就应该是"\\",当然从我们理解上是\,但在java中字符串表示却是"\\"。上面如果是
System.out.println(regex);

输出依然只是四个\。好阴险啊。。。。

囧了半天的正则表达式,原来是File.separator的问题。
分享到:
评论

相关推荐

    android java.lang.IllegalArgumentException contains a path separator

    在Android开发中,Java编程时常会遇到`java.lang.IllegalArgumentException`异常,这通常表示传入的参数不符合方法的要求。在本例中,错误信息“contains a path separator”提示我们问题可能与路径分隔符有关,这...

    javaFile[归类].pdf

    在Java编程语言中,`File`类是处理文件和目录操作的核心类,它位于`java.io`包中。本文将详细讲解如何使用`File`类进行文件和目录的创建、删除、判断以及列出目录内容等操作。 1. **创建文件** 创建文件的基本步骤...

    Java中System.getProperty的使用

    - `file.separator`: 文件分隔符(UNIX系统中通常为“/”)。 - `path.separator`: 路径分隔符(UNIX系统中通常为“:”)。 - `line.separator`: 行分隔符(UNIX系统中通常为“\n”)。 - `user.name`: 用户名。 - `...

    java中的IO操作总结(四)

    51 import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.io.Serializable; @SuppressWarnings("serial") //一个类要想实现序列...

    java.lang.UnsupportedOperationException异常(csdn)————程序.pdf

    `java.lang.UnsupportedOperationException`是Java中的一个运行时异常,它属于`RuntimeException`的子类。这个异常通常在尝试调用一个不支持的操作时抛出。在Java编程中,某些方法可能在特定对象或特定条件下不支持...

    Java文件操作.pdf

    java.io.File file = new java.io.File("D:\\My Documents", "StudySample"); ``` 2. **文件对象操作方法** - `exists()`:检查文件是否存在。 - `isDirectory()`:判断文件是否为目录。 - `isFile()`:判断...

    java实现的解压与压缩 zip和rar类型的

    在Java编程环境中,处理压缩和解压缩文件是常见的任务,主要涉及到两个标准库中的类:`java.util.zip`和第三方库如Apache Commons Compress。本文将深入探讨如何使用Java实现ZIP和RAR类型的压缩与解压操作,以及相关...

    使用System.getProperty(line.separator).md

    这是本人在进行使用递归替换HTML文件中的图片内容时,所遇到的问题解决方案,喜欢能够帮到大家,让自己懂得东西越来愈多,做更多的分享

    文件系统操作-自己写的

    +-- java.io.File (implements java.io.Serializable, java.lang.Comparable<java.io.File>) ``` ##### 2. `File`类构造方法 `File`类提供了多种构造方法来帮助创建`File`对象: - **File(String pathname)**: ...

    java项目路径(相关信息)的取得

    在Java开发过程中,经常需要获取系统属性或环境变量来适应不同的部署场景,比如确定类路径、临时目录等。本文将详细介绍如何利用`System.getProperty()`方法来获取Java项目的路径及相关信息,并对这些信息的具体含义...

    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 基础知识资料下载

    - Java提供了`File.pathSeparator`和`File.separator`两个常量,分别代表路径分隔符(例如Windows的";"和Unix/Linux的":")和文件分隔符(例如Windows的"\\"和Unix/Linux的"/")。 - 在编写跨平台的代码时,应使用...

    Java中的IO整理完整版

    `File.separator`用于表示当前操作系统中的路径分隔符,例如在Windows上是`\`,在Linux或Mac上是`/`。`File.pathSeparator`则是用于表示路径列表中的分隔符,通常在Windows上是 `;`,在Unix系统上是 `:`。使用这些...

    java复制文件及复制文件夹

    在Java编程中,复制文件和复制文件夹是常见的操作...总结来说,Java通过`java.io`和`java.nio.file`包提供的API,可以方便地实现文件和文件夹的复制。在处理大量数据或复杂目录结构时,正确理解和使用这些API至关重要。

    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. 导入必要的包:`import java.io.File;` 2. 创建`File`对象,指定文件路径:`File f = new File("D:\\hello.txt");` 3. 使用`createNewFile()`方法尝试创建文件。如果文件已经存在,则会抛出异常。因此这里使用了`...

    java内核分析.pdf

    `java.home`是JVM的安装目录,`java.class.version`表示类版本,`java.class.path`是类加载路径,`os.name`、`os.arch`和`os.version`分别对应操作系统名称、架构和版本,`file.separator`、`path.separator`和`line...

    java字节流和字符流[借鉴].pdf

    import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; public class InputStreamDemo { public static void main(String[] args) throws IOException ...

    java删除文件夹代码

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

    IO总结处理

    在Java中,我们通常使用`java.io.File`类来表示文件对象。通过调用`createNewFile()`方法可以创建一个新的空文件。如果文件已存在,则此方法返回`false`;如果文件成功创建,则返回`true`。 示例代码如下: ```...

Global site tag (gtag.js) - Google Analytics