Você pode especificar a codificação como: UTF-8 para gravar e ler arquivos. Se a codificação do arquivo for desconhecida, você poderá usar esse método para obter o arquivo que codifica primeiro e depois especificar a codificação correta para lê -lo; caso contrário, o problema de Arquivo ocorrerá.
Como identificar a codificação de arquivos, consulte: Java lê automaticamente de acordo com a codificação do conteúdo do arquivo para evitar o código distorcido
A cópia do código é a seguinte:
pacote com.zuidaima.util;
importar java.io.bufferedReader;
importar java.io.bufferedwriter;
importar java.io.file;
importar java.io.fileInputStream;
importar java.io.fileOutputStream;
importar java.io.ioException;
importar java.io.inputStreamReader;
importar java.io.OutputStreamWriter;
classe pública ReadWriteFileWithEncode {
public static void Write (Caminho da String, Conteúdo da String, Codificação da String)
lança ioexception {
Arquivo de arquivo = novo arquivo (caminho);
file.Delete ();
file.createNewFile ();
Bufferwriter writer = new bufferwriter (novo outputStreamWriter (
novo FileOutputStream (arquivo), codificação));
writer.write (content);
writer.close ();
}
public static string read (string path, string coding) lança ioexception {
String Content = "";
Arquivo de arquivo = novo arquivo (caminho);
BUBLEREDREADER LEITOR = NEW BUMBERREDERRADER (novo InputStreamReader (
new FileInputStream (arquivo), codificação));
Linha de string = null;
while ((line = reader.readline ())! = null) {
content + = linha + "/n";
}
leitor.close ();
retornar conteúdo;
}
public static void main (string [] args) lança ioexception {
String Content = "Conteúdo chinês";
String path = "c: /test.txt";
String coding = "utf-8";
ReadWriteFileWithEncode.Write (caminho, conteúdo, codificação);
System.out.println (readWriteFileWithEncode.read (Path, Coding));
}
}