私のファイルにデータを印刷するには、PrintWriter
とDataOutputStream
の両方を書き込む必要があります。しかし、PrintWriter
はDataOutputStream
コードの後に来るが、DataOutputStream
より早く印刷されている。コードのPrintWriterとDataOutputStreamを使用してJavaの同じファイルに書き込む
パート:PWから
import java.io.*;
import java.util.*;
public class file {
public static void main(String[] args) {
DataOutputStream dos=null;
PrintWriter pw=null;
try {
File f=new File("file.txt");
dos=new DataOutputStream(new FileOutputStream(f));
pw=new PrintWriter(f);
Scanner b=new Scanner(System.in);
for(int i=0;i<=4;i++) {
int h=b.nextInt();
b.nextLine();
dos.writeInt(h);
String s=b.nextLine();
int l=s.length();
dos.writeBytes(s);
pw.println();
}
} catch(IOException e) {
e.printStackTrace();
} finally {
if(dos!=null)
try {
dos.close();
} catch(IOException e) {
e.printStackTrace();
}
pw.flush();
}
}
}
新しい行は、これを回避する方法をdos.write();
から印刷された第1およびデータを取得しています?それを順番に取得させるか?それらは異なる目的のために使用されているよう
なぜ 'dos.write( '\ n');'を使わず、PrintWriterを取り除くのですか? – PeterMmm
"私のファイルにデータを印刷するには、' PrintWriter'と 'DataOutputStream'の両方を書く必要があります。"同じファイル、テキストとバイナリ、バッファされた出力とバッファされていない出力のどちらにも 'Writers'と' OutputStreams'を混在させることができないからです。ここには設計上の問題があります。 – EJP
dos.write( '\ n')はテキストファイル内に何も印刷しません。 – yashodarshan