Как заменить обратную косую черту с последующим 't' или любым другим алфавитом или символом в escape-символе в пути к файлу для прямой косой черты в Java? - PullRequest
0 голосов
/ 26 сентября 2011

Я импортирую файл CSV в базу данных MySQL.Это можно сделать с помощью поддержки java.mysql для прямой косой черты в пути к файлу.Если пользователь указывает путь

String filepath=" c:\upload\date\csv\sample.csv";

, мы можем сделать это, заменив '\' на '/', используя следующую строку кода.

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

, но когда пользователь вводит путь следующим образом

String filepath=" c:\test.csv";

функция замены, которая не может заменить "\\" на "/"

, поскольку '\' в пути к файлу не сохраняется '\', поскольку '\' сопровождается 't'и он становится как '\t' escape-символом.проблемы такого типа будут возникать с каждой escape-последовательностью.

Я хочу найти обратную косую черту в пути и заменить их косой чертой, чтобы получить:

c:/test.csv

Какэто сделано?Как решить эту проблему?

1 Ответ

4 голосов
/ 26 сентября 2011

Если вы получаете значение через JFileChooser, оно будет выглядеть примерно так:

String value = "c:\\test.csv"; // This really only has a single backslash

Но вам не нужно заменять обратную косую черту на прямую. Мое предположение заключается в том, что вы включаете значение непосредственно в генерируемый SQL: не делайте этого . Вместо этого используйте подготовленный оператор с параметрами, и вы, возможно, обнаружите, что проблема просто исчезла ... и вдруг вы тоже не будете так уязвимы для атак SQL-инъекций ...

Если вам действительно, действительно необходимо преобразовать обратную косую черту в прямую косую черту, вы можете использовать:

String newValue = oldValue.replace("\\", "/");

... но вы не должны делать это.

...