2013-04-28 80 views
0

我在兩個文件中有浮點數。我想將它們寫入單個文件。寫完後打開文件時,我看不到浮點數。我可以看到一些機器碼或其他東西。這裏是我的代碼將浮點數寫入文件

import java.io.*; 
import java.util.*; 
public class F 
{ 
    public static void main(String args[]) throws Exception 
{ 
    FileInputStream fr1 = new FileInputStream("distance.txt"); 
    BufferedReader br1 = new BufferedReader(new InputStreamReader(fr1)); 
    FileInputStream fr2 = new FileInputStream("price.txt"); 
    BufferedReader br2 = new BufferedReader(new InputStreamReader(fr2)); 
    FileOutputStream fw1 = new FileOutputStream("file1.txt"); 
    BufferedOutputStream bos=new BufferedOutputStream(fw1); 
    DataOutputStream dos=new DataOutputStream(bos); 
    String s1,s2; 
    while(((s1 = br1.readLine()) != null) && ((s2=br2.readLine())!=null)) 
    { 
     float a1=Float.parseFloat(s1); 
     float a2=Float.parseFloat(s2); 
     a1=a1*10; 
     a2=a2*10000; 
     System.out.println(a1+" "+a2); 
     dos.writeFloat(a1); 
     dos.writeFloat(a2); 

    } 
} 
} 
+0

請向我們展示該文件,您期望看到的內容以及您實際看到的內容。 – 2013-04-28 19:23:33

+3

您是否閱讀過「DataOutputStream.writeFloat」的文檔?這聽起來像你期待*文字*表示。 – 2013-04-28 19:23:58

+0

由於您使用的是'DataOutputStream',因此文件內容不可讀。 – 2013-04-28 19:25:26

回答

4

你正在寫一個二進制格式的浮點數。

注意:DataInput/OutputStream用於二進制格式,Reader/Writers用於文本格式。

我建議你使用PrintWriter來寫文本。

BTW您可以使用FileReader而不是FileInputStream和InputStreamReader。

+0

謝謝,明白了:) – user2133404 2013-04-28 19:35:26