c'è un file chiamato "dd.txt" nel mio disco, il suo contenuto è \u5730\u7406
Qual è la differenza tra una stringa nel codice sorgente e una stringa letta da un file?
ora, quando ho eseguito questo programma
public static void main(String[] args) throws IOException {
FileInputStream fis=new FileInputStream("d:\\dd.txt");
ByteArrayOutputStream baos=new ByteArrayOutputStream();
byte[] buffer=new byte[fis.available()];
while ((fis.read(buffer))!=-1) {
baos.write(buffer);
}
String s1="\u5730\u7406";
String s2=baos.toString("utf-8");
System.out.println("s1:"+s1+"\n"+"s2:"+s2);
}
e ho ottenuto risultati diversi
s1:地理
s2:\u5730\u7406
puoi dirmi perché? e come posso leggere quel file e ottenere lo stesso risultato come s1 in cinese?
Perché il _compiler_ esegue la sostituzione prima di compilare qualsiasi cosa. –
Nota a margine: fis.available() indica quanti byte possono essere letti senza bloccare. Non ti dice la lunghezza dell'input (file). – haraldK
grazie a tutti .. –