Java 写入文件

Java 写入文件,java,writing,Java,Writing,我正在从串行端口接收数据,我想将数据写入文件。问题是程序正在覆盖文件中相同位置的数据。例如,它在同一位置写入0xAA和0xBD,当我打开文件以文本编辑方式读取它时,我在文件中只找到一个数字。我怎样才能把数字一个接一个地写出来?杰斯 public class Loading { public static void writeFile(String fileName,int bytes) { FileOutputStream fo = null; Fil

我正在从串行端口接收数据,我想将数据写入文件。问题是程序正在覆盖文件中相同位置的数据。例如,它在同一位置写入0xAA和0xBD,当我打开文件以文本编辑方式读取它时,我在文件中只找到一个数字。我怎样才能把数字一个接一个地写出来?杰斯

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您根本没有尝试。请再次阅读此答案,它是正确的。请重试。