我必须同时写这两个文件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();
如何避免出现这种情况的数据?并使其井然有序?
切勿将Writer
和混合使用,OutputStream
因为它们用于不同的用途,实际上,一个Writer
用于生成文本文件(人类可读),而一个OutputStream
用于生成二进制文件(人类不可读),请仅使用一个根据您的要求。
假设您决定只使用DataOutputStream
简单替换pw.println()
,例如使用dos.write(System.lineSeparator().getBytes(StandardCharsets.US_ASCII))
来将行分隔符写入文件中OutputStream
。但是请注意,在二进制文件中,添加行分隔符实际上没有任何意义,因为该文件并不意味着人类可以读取。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句