我正在学习使用 Java 的文件 I/O。
以下是我来自两个不同 Java 文件的代码。一个是带有主类的“File”,另一个是“FileWrite”。
我能够实现字符串输入和输出。但是输出文本文件一开始就有乱码,我不知道为什么。
[文件.Java]
package file;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class File {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new FileReader("B:\\fileIn.txt")))
{
String stCurrent;
while ((stCurrent = br.readLine()) != null) {
System.out.println(stCurrent);
}
} catch (IOException e) {
e.printStackTrace();
}
FileWrite fW = new FileWrite();
fW.serializeAddress("Boston", "Canada");
}
}
[文件写入.Java]
package file;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class FileWrite {
public void serializeAddress(String city, String country) {
try {
FileOutputStream fout = new FileOutputStream("B:\\address.txt");
ObjectOutputStream obOut = new ObjectOutputStream(fout);
obOut.writeUTF(city);
obOut.writeUTF(country);
obOut.close();
System.out.println("Output Done");
} catch(Exception ex) {
ex.printStackTrace();
}
}
}
现在,关于“obOut.writeUTF(city); obOut.writeUTF(country);” 我分离出两个字符串输入。有没有办法将它们组合成一个?如 obOut.writeUTF(city, counry) 而不是两个。或者这只能通过将它们变成一个对象来实现?
[更新] 又导入了几个,我试过了
PrintStream ps = new PrintStream(new FileWriter("B:\\addressPS.txt"));
ps.println(city);
ps.println(country);
ps.close();
But with errors, any clue?