[英]Using PrintWriter and DataOutputStream to write in same file in java
我必須同時編寫PrintWriter
和DataOutputStream
才能將數據打印到我的文件中。 但PrintWriter
是越來越此前打印比DataOutputStream
雖然談到后DataOutputStream
中的代碼。
部分代碼:
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();
}
}
}
首先打印來自pw的新行,然后打印來自dos.write();
數據dos.write();
如何避免這種情況? 並使其井然有序?
切勿將Writer
和OutputStream
混合使用,因為它們有不同的用途,實際上是Writer
用於生成文本文件(人類可讀),而OutputStream
用於生成二進制文件(人類不可讀) ,請根據您的要求僅使用其中之一。
假設您決定只使用DataOutputStream
只需用dos.write(System.lineSeparator().getBytes(StandardCharsets.US_ASCII))
類的東西替換pw.println()
dos.write(System.lineSeparator().getBytes(StandardCharsets.US_ASCII))
即可將行分隔符與OutputStream
寫入文件中。 但是請注意,在二進制文件中,添加行分隔符實際上沒有任何意義,因為該文件並不意味着人類可以讀取。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.