Java 写入文件
我正在从串行端口接收数据,我想将数据写入文件。问题是程序正在覆盖文件中相同位置的数据。例如,它在同一位置写入0xAA和0xBD,当我打开文件以文本编辑方式读取它时,我在文件中只找到一个数字。我怎样才能把数字一个接一个地写出来?杰斯Java 写入文件,java,writing,Java,Writing,我正在从串行端口接收数据,我想将数据写入文件。问题是程序正在覆盖文件中相同位置的数据。例如,它在同一位置写入0xAA和0xBD,当我打开文件以文本编辑方式读取它时,我在文件中只找到一个数字。我怎样才能把数字一个接一个地写出来?杰斯 public class Loading { public static void writeFile(String fileName,int bytes) { FileOutputStream fo = null; Fil
public class Loading {
public static void writeFile(String fileName,int bytes) {
FileOutputStream fo = null;
File file;
try {
file = new File("C:/dar.txt");
fo = new FileOutputStream(file);
if (!file.exists())
{
file.createNewFile();
}
//StringUtils.getHexString((byte) bytes);
fo.write((byte) bytes);
System.out.println(getHexString (bytes));
}
catch (Exception e) {
System.out.println("writeFile exception: " + e.getClass().getName() + " " + e.getMessage());
}
finally {
if (fo != null) {try {fo.close();} catch (Exception ex) {}}
}
}
同样,FileOutputStream具有多个构造函数。使用同时接受文件
和布尔值
的构造函数,并将布尔值设置为真
FileOutputStream(文件,布尔追加)
这将导致它附加到文件中,而不是覆盖…您是否可以友好地发布您的预期结果和您得到的结果,以便我们更好地理解您的问题?看起来非常核心的问题是,在
newfileoutputstream(…)
之前检查File.exists()
并调用File.createNewFile()
是浪费。事后再打电话是毫无意义的。文件在您检查时不可能不存在。否则将引发异常,您将无法访问检查/创建代码newfileoutputstream(…)
已经完成了所有这一切。不要写无意义的代码。为什么只有一个字节的参数叫做bytes
?我的输入数据看起来像8d bb a1 8d bb a5。。。。。。。。。。。我通过串行端口接收数据。在我要写的文件c:/dar.txt中。看起来没什么。我累了,但得到了相同的结果公共类加载{public static void writeFile(String fileName,int bytes)抛出IOException{File File File;FileWriter out=null;try{out=new FileWriter(“c:/dar.txt”);out.write((byte)bytes);System.out.println(getHexString(bytes));}catch(IOException ioe){ioe.printStackTrace();}最后{if(out!=null)out.close();}@用户1919855您根本没有尝试。请再次阅读此答案,它是正确的。请重试。