向磁盘中写入各种数据后,
输入整数
55
输入浮点数
15.2
输入布尔量
true
在记事本中查看时为什么查看时会是这种情况
显示7As33,而不是我输入的数据
------解决思路----------------------
按照字符流输入字符串你就能看到了。
------解决思路----------------------
把你写入磁盘文件的代码贴出来看看
比如这样就可以
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
public class FileStreamTest {
public static void main(String args[]) throws UnsupportedEncodingException, IOException{
String content="输入整数\n55\n输入浮点数\n15.2\n输入布尔量\ntrue";
String path="d:"+File.separator+"test.txt";
writeToTxt(content,path);
}
public static void writeToTxt(String content,String path) throws UnsupportedEncodingException, IOException{
FileOutputStream fos = new FileOutputStream(path);
fos.write(content.getBytes("UTF-8"));
fos.flush();
fos.close();
}
}
------解决思路----------------------
用PrintStream处理字符很方便
public class Demo{
public static void main(String[] args) throws FileNotFoundException {
PrintStream ps = new PrintStream("d:/test.log");
Scanner scanner = new Scanner(System.in);
while(true){
System.out.println("请输入: ");
String a = scanner.nextLine();
if ("quit".equalsIgnoreCase(a)){
System.out.println("退出");
break;
}
ps.println(a);
}
}
}
------解决思路----------------------
你在4楼贴的源码使用了
dout.writeInt(i); // Writes an int to the underlying output stream as four bytes 按照4个字节流方式写入
dout.writeFloat(f);
dout.writeBoolean(b);
这些操作不是按照字符写入的,你用字符的方式查看(比如打开notepad++),当然和你的输入不同了
写入和看到的要一样,那就改为 3楼 按照字符方式写入
------解决思路----------------------
如果你要按照啊字节流方式写入,那么读取的时候也要按照字节流方式读取,也可以还原成你以前输入的信息。
DataInputStream 有对应的 readInt(), readFloat() , readBoolean()