java读文件出现乱吗?
来源:百度知道 编辑:UC知道 时间:2024/06/23 21:34:41
private FileOutputStream m_fout = null;
private DataOutputStream m_dout = null;
public void write() {
BaseInfo b = new BaseInfo();
try {
m_fout = new FileOutputStream("d:/test.txt");
m_dout = new DataOutputStream(m_fout);
int num =10;
float fNum=21.11f;
long lNum = 3456789;
String name = "test";
for (int j = 0; j < 10; j++) {
m_dout.writeInt(num);
m_dout.writeFloat(fNum);
m_dout.writeLong(lNum);
int length = name.length();
for (int i = 0; i < length; i++) {
m_dout.write(b.name.charAt(i));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
我读时总是出现乱码,请帮忙解决 ,我用DataInputStream读的
以下程序输出结果:“10 21.11 3456789 中文测试”,中英文都可以
你试试
另外问一句:你是要用 name="Test"测试,还是用 BaseInfo 里的 name 测试?
import java.io.*;
class BaseInfo {
String name = "中文测试";
}
public class FileTest {
public static void main(String args[]) {
FileTest test = new FileTest();
test.write();
test.read();
}
private FileOutputStream m_fout = null;
private DataOutputStream m_dout = null;
private FileInputStream m_fin = null;
private DataInputStream m_din = null;
BaseInfo b = new BaseInfo();
public void write() {
try {
m_fout = new FileOutputStream("d:/test.txt");
m_dout = new DataOutputStream(m_fout);
int num = 10;
float fNum = 21.11f;
long lNum = 3456789;
for (int j = 0; j < 10; j++) {
m_dout.writeInt(num);
m_dout.writeFloat(fNum);
m_dout.writeLong(lN