java读文件出现乱吗?

来源:百度知道 编辑:UC知道 时间:2024/06/23 21:34:41
我通过如下方法将几个变量写入文件中,可应该怎样读取?读出的格式为:1021.113456789test
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