如何在java文件path中转义反斜杠和自动生成的转义字符

我有非常小而简单的问题,但我没有得到解决scheme。 其实我正在使用文件select器得到一个CSV文件path。 我正在使用加载数据本地infile查询在这个csv文件input数据库中的数据。

假设我input的文件path是“C:\ title.csv”当我把这个string进行查询时,你会在path中看到\ t组合。 这实际上是文件path的一部分,而不是转义字符'\ t'。 但是java和mysql认为它是转义字符。

然后我尝试用下面的代码行replace文件pathstring中的“\”。

String filepath="C:\title.csv"; String filepath2=filepath.replace("\\","\\\\"); 

仍然没有对文件path的影响,它仍然认为'\ T'作为转义字符。

所以我的问题是如何解决这个问题,而不改变文件的名称?

如果我们有像这样的path

 String filepath="C:\new folder\title.csv"; 

它会考虑\ n和\ t作为转义字符。 如果path中的文件或文件夹的名称导致转义字符,如何解决这个问题?

在Java string文字中使用双斜杠来转义斜线:

 String s = "c:\\new folder\\title.csv"; 

如果最终用户在JFileChooser中inputstring,则stringvariables将包含用户input的所有字符。 只有在Java源代码中使用string文字时才需要转义。

并使用准备好的语句将string插入到数据库表中。 这将正确地逃避特殊字符,并避免SQL注入攻击。 阅读Java教程中关于JDBC的准备语句的更多信息。

你需要使用:

  String filepath2=filepath.replace("\\","\\\\"); 

String filepath2=filepath.replace("\","\\")不是有效的代码 – \是string文字中的特殊字符,需要转义:

 String escapedFilepath = filepath.replace("\\","\\\\"); //double all backslashes 

你必须像这样在初始文字( filepath )中使用转义:

String filepath="C:\\title.csv"