Come sfuggire alle barre retroverse e al carattere di escape generato automaticamente nel percorso del file in java

Ho un problema molto piccolo e semplice ma non trovo soluzioni su di esso. In realtà sto ottenendo un percorso file CSV usando il selettore di file. Sto inserendo i dati in questo file csv nel database utilizzando la query di accesso locale dei dati di carico.

Supponiamo che il percorso del file inserito sia “C: \ title.csv”. Quando inserisco questa stringa per interrogare, vedrai la combinazione \ t nel percorso. Questo \ t che è in realtà parte del percorso del file e non il carattere di escape ‘\ t’. Ma java e mysql lo considerano come un personaggio di escape.

poi ho provato a sostituire ‘\’ nella stringa del percorso file con “\\” usando la seguente riga di codice.

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

Ancora non c’è effetto sul percorso del file e considera ancora il carattere di escape come \ t.

Quindi la mia domanda è come risolvere questo problema senza cambiare il nome del file?

Se abbiamo percorso come

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

Considererà \ n e \ t come carattere di escape. come risolvere questo problema se il nome del file o della cartella nel percorso causa il carattere di escape?

Usa una doppia barra in letterale stringa Java per evitare una barra:

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

Se un utente finale immette una stringa in un JFileChooser, la variabile stringa conterrà tutti i caratteri immessi dall’utente. L’escaping è necessario solo quando si usano letterali String nel codice sorgente Java.

E utilizzare una dichiarazione preparata per inserire le stringhe in una tabella di database. Ciò eviterà correttamente i caratteri speciali ed eviterà gli attacchi SQL injection . Ulteriori informazioni sulle istruzioni preparate nel tutorial Java su JDBC .

devi usare:

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

String filepath2=filepath.replace("\","\\") non è un codice valido – \ è un carattere speciale in string letterali e deve essere sottoposto a escape:

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

Devi usare l’escaping nel letterale iniziale ( filepath ), ad esempio:

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