2016-04-11 8 views
0

作成したファイルにデータを保存したいのですが、コードではバイナリ言語がファイルに保存されます。誰も私が文字列を格納するのを助けることができますか?データをファイルに保存できません。代わりにバイナリ形式で格納します。

import java.io.*; 
import java.util.*; 
class WriteToFileExample { 
    public static void main(String args[]) { 
     try { 
      // Create file 
      FileWriter fstream = new FileWriter("out.txt"); 
      BufferedWriter out = new BufferedWriter(fstream); 
      Scanner sc = new Scanner(System.in); 
      System.out.println("enter name"); 
      int a = sc.nextInt(); 
      out.write(a); 
      out.close(); 
     } catch (Exception e) { 


      //Catch exception if any 
      System.err.println("Error: " + e.getMessage()); 
     } 
    } 
} 
+0

文字列として書き込みます(write(a + ""、0、1))。しかし、 'write'のために、より洗練された解決策があるかもしれません。 – Reinard

+1

[Javadocを読む](https://docs.oracle.com/javase/7/docs/api/java/io/BufferedWriter.html#write(int))メソッドを呼び出します。 –

+0

名前は伝統的に文字列ですが、数字で人に名前を付けない(*私は思う*)ので、 'nextInt'を使って読み込みます。魅力的! –

答えて

-1

文字列を入力するためにScanner.nextInt()を使用しています。変更:

int a = sc.nextInt() 

String a = sc.next() 

へのより広範な問題は、「書き込み(INT)」BufferedWriterの中にメソッドを使用する場合、あなたは整数で指定された文字を書いているということです。つまり、入力した整数で表されるASCII文字が何であれ書いているということです。たとえば、コードに "65"を入力した場合、大文字Aのテキストファイルを取得しますAはASCII#065です。あなたが見ることができるようにあなたがそれらを考えるだろうと同じように、最初の20かそこらは、文字や数字ではありません http://web.cs.mun.ca/~michael/c/ascii-table.html

はここで文字のASCII値のテーブルです。必要に応じて、それらの文字の整数値をコードに入力して、その動作を確認することができます。

+2

読書自体は問題ではありません。 'int'を読むことには何も問題はありません。それは問題のある' int'がどのように記述されるかです。 –

+0

あなたは正しいですが、誰かがこの種のためにScannerクラスを使用している場合、Javadocの「記述する文字を指定する」の説明がどれほど有用かはわかりません。私は答えを編集して詳細を精緻化した – stuart

関連する問題