java里面怎样将两个文本文件合并成一个文件啊?

解决方案 »

  1.   

    可以用文件流的方式:分别读取这两个文件inputStream1和inputStream2,
    然后outputStream写在同一个文件里面,就达到楼主的要求了。
    楼主能明白这个做法么?
      

  2.   

    应该就是把a文件追加到b文件里吧或者可以用java执行一个 批处理 很方便滴
    Runtime.getRuntime().exec("cmd.exe /c "+语句);
      

  3.   

    还有个笨一点的方法:分别读取两个文本文件,用StringBuffer把这两个文件内容拼接起来,然后在写到同一个文件中,也可以达到楼主要求的效果,不过如果文件太大的话,不建议用这种方法,耗资源。
      

  4.   

    可以用文件流的方式:分别读取这两个文件inputStream1和inputStream2, 
    然后outputStream写在同一个文件里面,就达到楼主的要求了。 
    楼主能明白这个做法么?
      

  5.   

    建议楼主看看java里面关于文件流的操作,弄熟了文件流,这个问题就会有很多种解决方法的,这里贴上以前在csdn中copy的一个有关文件流操作的帖子内容,供参考:java中文件操作大全  一.获得控制台用户输入的信息/** *//**获得控制台用户输入的信息
         * @return
         * @throws IOException
         */
        public String getInputMessage() throws IOException...{
            System.out.println("请输入您的命令∶");
            byte buffer[]=new byte[1024];
            int count=System.in.read(buffer);
            char[] ch=new char[count-2];//最后两位为结束符,删去不要
            for(int i=0;i<count-2;i++)
                ch[i]=(char)buffer[i];
            String str=new String(ch);
            return str;
        }
    可以返回用户输入的信息,不足之处在于不支持中文输入,有待进一步改进。二.复制文件1.以文件流的方式复制文件/** *//**以文件流的方式复制文件
         * @param src 文件源目录
         * @param dest 文件目的目录
         * @throws IOException  
         */
        public void copyFile(String src,String dest) throws IOException...{
            FileInputStream in=new FileInputStream(src);
            File file=new File(dest);
            if(!file.exists())
                file.createNewFile();
            FileOutputStream out=new FileOutputStream(file);
            int c;
            byte buffer[]=new byte[1024];
            while((c=in.read(buffer))!=-1)...{
                for(int i=0;i<c;i++)
                    out.write(buffer[i]);        
            }
            in.close();
            out.close();
        }
    该方法经过测试,支持中文处理,并且可以复制多种类型,比如txt,xml,jpg,doc等多种格式三.写文件1.利用PrintStream写文件/** *//**
         * 文件输出示例
         */
        public void PrintStreamDemo()...{
            try ...{
                FileOutputStream out=new FileOutputStream("D:/test.txt");
                PrintStream p=new PrintStream(out);
                for(int i=0;i<10;i++)
                    p.println("This is "+i+" line");
            } catch (FileNotFoundException e) ...{
                e.printStackTrace();
            }
        }
    2.利用StringBuffer写文件public void StringBufferDemo() throws IOException......{
            File file=new File("/root/sms.log");
            if(!file.exists())
                file.createNewFile();
            FileOutputStream out=new FileOutputStream(file,true);        
            for(int i=0;i<10000;i++)......{
                StringBuffer sb=new StringBuffer();
                sb.append("这是第"+i+"行:前面介绍的各种方法都不关用,为什么总是奇怪的问题 ");
                out.write(sb.toString().getBytes("utf-8"));
            }        
            out.close();
        }
    该方法可以设定使用何种编码,有效解决中文问题。四.文件重命名
        /** *//**文件重命名
         * @param path 文件目录
         * @param oldname  原来的文件名
         * @param newname 新文件名
         */
        public void renameFile(String path,String oldname,String newname)...{
            if(!oldname.equals(newname))...{//新的文件名和以前文件名不同时,才有必要进行重命名
                File oldfile=new File(path+"/"+oldname);
                File newfile=new File(path+"/"+newname);
                if(newfile.exists())//若在该目录下已经有一个文件和新文件名相同,则不允许重命名
                    System.out.println(newname+"已经存在!");
                else...{
                    oldfile.renameTo(newfile);
                } 
            }         
        }五.转移文件目录 
     转移文件目录不等同于复制文件,复制文件是复制后两个目录都存在该文件,而转移文件目录则是转移后,只有新目录中存在该文件。     /** *//**转移文件目录
         * @param filename 文件名
         * @param oldpath 旧目录
         * @param newpath 新目录
         * @param cover 若新目录下存在和转移文件具有相同文件名的文件时,是否覆盖新目录下文件,cover=true将会覆盖原文件,否则不操作
         */
        public void changeDirectory(String filename,String oldpath,String newpath,boolean cover)...{
            if(!oldpath.equals(newpath))...{
                File oldfile=new File(oldpath+"/"+filename);
                File newfile=new File(newpath+"/"+filename);
                if(newfile.exists())...{//若在待转移目录下,已经存在待转移文件
                    if(cover)//覆盖
                        oldfile.renameTo(newfile);
                    else
                        System.out.println("在新目录下已经存在:"+filename);
                }
                else...{
                    oldfile.renameTo(newfile);
                }
            }       
        } 六.读文件1.利用FileInputStream读取文件
        /** *//**读文件
         * @param path
         * @return
         * @throws IOException
         */
        public String FileInputStreamDemo(String path) throws IOException...{
            File file=new File(path);
            if(!file.exists()||file.isDirectory())
                throw new FileNotFoundException();
            FileInputStream fis=new FileInputStream(file);
            byte[] buf = new byte[1024];
            StringBuffer sb=new StringBuffer();
            while((fis.read(buf))!=-1)...{
                sb.append(new String(buf));    
                buf=new byte[1024];//重新生成,避免和上次读取的数据重复
            }
            return sb.toString();
        }
    2.利用BufferedReader读取在IO操作,利用BufferedReader和BufferedWriter效率会更高一点     /** *//**读文件
         * @param path
         * @return
         * @throws IOException
         */
        public String BufferedReaderDemo(String path) throws IOException...{
            File file=new File(path);
            if(!file.exists()||file.isDirectory())
                throw new FileNotFoundException();
            BufferedReader br=new BufferedReader(new FileReader(file));
            String temp=null;
            StringBuffer sb=new StringBuffer();
            temp=br.readLine();
            while(temp!=null)...{
                sb.append(temp+" ");
                temp=br.readLine();
            }
            return sb.toString();
        }
    3.利用dom4j读取xml文件     /** *//**从目录中读取xml文件
         * @param path 文件目录
         * @return
         * @throws DocumentException
         * @throws IOException
         */
        public Document readXml(String path) throws DocumentException, IOException...{
            File file=new File(path);
            BufferedReader bufferedreader = new BufferedReader(new FileReader(file));
            SAXReader saxreader = new SAXReader();
            Document document = (Document)saxreader.read(bufferedreader);
            bufferedreader.close();
            return document;
        }
     七.创建文件(文件夹)1.创建文件夹  /** *//**创建文件夹
         * @param path  目录
         */
        public void createDir(String path)...{
            File dir=new File(path);
            if(!dir.exists())
                dir.mkdir();
        }
    2.创建新文件 /** *//**创建新文件
         * @param path 目录
         * @param filename 文件名
         * @throws IOException
         */
        public void createFile(String path,String filename) throws IOException...{
            File file=new File(path+"/"+filename);
            if(!file.exists())
                file.createNewFile();
        }
    八.删除文件(目录)1.删除文件     /** *//**删除文件
         * @param path 目录
         * @param filename 文件名
         */
        public void delFile(String path,String filename)...{
            File file=new File(path+"/"+filename);
            if(file.exists()&&file.isFile())
                file.delete();
        }
    2.删除目录
    要利用File类的delete()方法删除目录时,必须保证该目录下没有文件或者子目录,否则删除失败,因此在实际应用中,我们要删除目录,必须利用递归删除该目录下的所有子目录和文件,然后再删除该目录。  /** *//**递归删除文件夹
         * @param path
         */
        public void delDir(String path)...{
            File dir=new File(path);
            if(dir.exists())...{
                File[] tmp=dir.listFiles();
                for(int i=0;i<tmp.length;i++)...{
                    if(tmp[i].isDirectory())...{
                        delDir(path+"/"+tmp[i].getName());
                    }
                    else...{
                        tmp[i].delete();
                    }
                }
                dir.delete();
            }
        }