自分はプログラミング初心者です。以下のようなプログラムで新しいメモ帳ファイルに数字を出力しようとすると文字化けしてしまいます。どうすれば文字化けを直せるのでしょうか?
よろしくお願いします。
import java.io.*;
class Number {
public static void main(String args[]) {
try {
FileOutputStream fos =
new FileOutputStream(args[0]);
DataOutputStream dos =
new DataOutputStream(fos);
int count = 0;
int j = 1;
do {
dos.writeShort(j);
j += 3;
} while(++count < 15);
fos.close();
}
catch(Exception e) {
System.out.println("Exception: " + e);
}
}
}
No.2ベストアンサー
- 回答日時:
私もJavaは久しぶりで忘れてしまいましたが、以下のようにしたら成功しました。
import java.io.*;
class Number {
public static void main(String args[]) {
try {
FileWriter fw = new FileWriter(args[0]);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter pw = new PrintWriter(bw);
int count = 0;
int j = 1;
do {
pw.println(j);
j += 3;
} while(++count < 15);
pw.close();
bw.close();
fw.close();
}
catch(Exception e) {
System.out.println("Exception: " + e);
}
}
}
基本的にファイルに書き出すときはFileWriterクラスを使います。話がそれますが、#1様がおっしゃるようにOutPutStreamクラスはデータをバイナリ表現で送ります。テキスト表現ではないです。その辺のところはまあ難しいですが、2進数だか8進数だか16進数で書いているとおもいます。
話が戻りますが、BufferedWriterクラスはメモリに効率よくデータを読み込んで書き込みします。引数にはFileWriterクラスとか色々?使われます。PrintWriterクラスはこの場合、BufferedWriterクラスを引数にしますが、便利にファイルに書き込みできるメソッドを持っています。printlnメソッドだと改行してくれます。
まあ、基本的なファイル読み込み書き込みはFileWriterやらFileReaderクラスを使い、より効率的にメモリにアクセスするためにBufferedWriterやらBufferedReaderクラスを使用し、さらに書き込みの場合はPrintWriterクラスを使用して便利に書き込みます。ちなみにPrintReaderクラスはないです。
最初のうちは本のサンプルを丸写しでやっていってある程度のプログラムをどんどん作っていくうちになんとなく分かってきます。
では、がんばってください。私もここの回答者様たちに比べれば全然です・・
うまくいきました。素人なのでクラスなどのことはまだよくわかりませんが、これから勉強していきたいと思います。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java Java 配列<選挙> 4 2023/07/31 15:07
- Java java final 1 2022/06/10 22:49
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
同一パッケージにあるクラスが...
-
グローバルIPとプライベートIP...
-
クラス見てから 女の子5人 ネタ...
-
「天声人語」をインターネット...
-
同じクラスにならない確率を教...
-
自作のクラスファイルがインポ...
-
配列の重複する値とその個数を...
-
どこからも呼ばれていない無意...
-
javaのコンパイルができません...
-
クラスのプロパティに構造体を...
-
河合塾のクラス分けについて
-
tomcat上でのpropertiesファイ...
-
eclipseのパッケージって何?
-
重複エラーを解決するには
-
IPアドレスのクラスAを取得して...
-
下記の問合せを行うクエリを、P...
-
共通で使う関数を集めたクラス...
-
packageとimport の違いって?
-
ドキュメントクラスの取得方法
-
複数のクラスで共通した関数を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
3年間同じクラスになる確率
-
「天声人語」をインターネット...
-
配列の重複する値とその個数を...
-
自分事ですが、私のLINEのスク...
-
java eclipse 型に解決できません
-
同じクラスにならない確率を教...
-
どこからも呼ばれていない無意...
-
グローバルIPとプライベートIP...
-
担任にプレゼント
-
数学の計算問題。 3年間同じク...
-
クラスのプロパティに構造体を...
-
河合塾のクラス分けについて
-
IPアドレスのクラスAを取得して...
-
共通で使う関数を集めたクラス...
-
自作のクラスファイルがインポ...
-
1 つのヘッダファイルに複数の...
-
ヒートテックやファイバーヒー...
-
dllと同じプロジェクトにする方法
-
main()を持つクラスが2つ以上...
-
同一パッケージにあるクラスが...
おすすめ情報