DataOutputStream的乱码问题import java.io.*;
public class Hello{
public static void main(String[] args){
try{output的反义词
// 通过DataInputStream数据输⼊流把中的内容读出来
// 通过DataOutputStream数据输出流把的内容写⼊⽂件readme.out中
DataOutputStream out=new DataOutputStream(new BufferedOutputStream(new FileOutputStream("readme.out"),512));    BufferedReader in=new BufferedReader(new FileReader(""));
String s;
while((adLine())!=null){
System.out.println(s);
//1 源⽂件为,⾥⾯的内容是中⽂和英⽂,可以显⽰(不是乱码)
//2 要求通过OutputStream将写⼊⼀个⼆进制⽂件(要求可以显⽰,不是乱码)
//    s为⼆进制代码,现在是⽆论转码与否s都是乱码
out.Bytes());//取得字符串对应的⼆进制码,然后再写⼊⽂件中
byte[] t;
t="\n?0aA".getBytes();
for(int i=0;i<t.length;i++)
{
System.out.print(t[i]);
//out.writeInt(t[i]);//把⼆进制代码写⼊⽂件中
}
out.write(t);//把⼆进制代码写⼊⽂件中
out.write("subj哈哈\n".getBytes("gb2312"));//根据"gb2312"编码取得字符串的⼆进制码数组
}
in.close();
out.flush();
out.close();
// 通过DataOutputStream数据输出流把浮点型、整型、真假型、字符型、字符串型写⼊⽂件sample.out中
/* 但是sample.out⽂件中的浮点型、整型、真假型乱码,因为存储的是⼆进制⽂件编码,
* ⽤记事本打开看到的是相应的assca码值
* 如:
* a对应的assca码为97
* 10:显⽰为换⾏
* 63: 显⽰为?
* 48: 显⽰为0
* 97: 显⽰为a
* 65: 显⽰为A
*/
double pi=3.1415;
int i=10;
boolean okay=true;
char ch='J';
String s1="Java C 0 Pascal123123123 苏标记!";
FileOutputStream fsout=new FileOutputStream("sample.out");
DataOutputStream out1=new DataOutputStream(fsout);
out1.writeDouble(pi);  //向⽂件写⼊浮点型数据
out1.writeInt(i);  //向⽂件写⼊整形数据
out1.writeBoolean(okay); //向⽂件写⼊booleen型数据
out1.writeChar(ch); //向⽂件写⼊字符型数据
out1.writeUTF(s1);  //向⽂件写⼊字符串数据
out1.close();
// 通过DataInputStream数据输⼊流把浮点型、整型、真假型、字符型、字符串型从⽂件sample.out中读出来
FileInputStream fsin=new FileInputStream("sample.out");
DataInputStream in1=new DataInputStream(fsin);
adDouble();
adInt();
adBoolean();
adChar();
adUTF();
in1.close();
System.out.println("pi="+pi+", i="+i);
System.out.println("okay="+okay+", ch="+ch);
System.out.println("s="+s1);
}catch(Exception e){
e.printStackTrace();
}
}
}
我在中的内容为:renwenchao1111
输出的⽂件sample.out的内容乱码
eclipse对话框中的输出为:renwenchao1111 063489765pi=3.1415, i=10
okay=true, ch=Js=Java C 0 Pascal123123123 苏标记!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。