`
dyllove98
  • 浏览: 1408896 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:39168
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:80240
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:133347
社区版块
存档分类
最新评论

Java新手求助,将两个文件合并为一个文件执行程序是发生的问题

阅读更多

各位老师帮忙看看,我是刚接触Java的新手,下面程序代码是昨天在学习中根据书本上的程序修改过的,将文件写与读分两个类,可是在执行程序时出错,出错代码提示说问题是出在第39和104行中,我看出来就是在合并文件流时出错,经过认真的研究觉得应该是错在我使用方法时传递参数不对,由于经验不足还是没有搞懂,所以来园子求助,有知道的老师请指导一下,先谢谢了!

附上出错截图

复制代码
  1 import java.io.*;
  2 public class WRDemo
  3 {
  4     public static void main(String[] args) throws IOException
  5     {
  6         //实例化WriterFile和ReaderFile对象
  7         WriterFile w=new WriterFile();
  8         ReaderFile r=new ReaderFile();
  9         //声明两个文件读入流
 10         FileInputStream in1=null,in2=null;
 11         File inputFile=null;
 12         try {
 13                 String [] filename={"d:\\java_test\\1.txt","d:\\java_test\\2.txt","d:\\java_test\\12.txt"};
 14                 for(int i=0;i<filename.length-1;i++)
 15                 {            
 16                     inputFile=new File(filename[i]);
 17                     if(inputFile.exists())
 18                     {
 19                         System.out.println(inputFile.getName()+"文件存在!删除重新建立文件");
 20                         inputFile.delete();
 21                         w.run(inputFile,i+1);
 22                         if(i==0)
 23                             in1=r.run(inputFile);
 24                         if(i==1)
 25                             in2=r.run(inputFile);
 26                     }
 27                     else {
 28                         System.out.println(inputFile.getName()+"文件不存在!创建文件");
 29                         w.run(inputFile,i+1);
 30                         if(i==0)
 31                             in1=r.run(inputFile);
 32                         if(i==1)
 33                             in2=r.run(inputFile);
 34                     }
 35                 } 
 36                 //构造一个输出文件
 37                 File outputfile=new File(filename[2]); 
 38                 //将两个文件合为一个输入流
 39                 w.run1(in1,in2,outputfile);
 40                 System.out.println("ok...");
 41                 in1.close();
 42                 in2.close();
 43 
 44             }
 45             catch (IOException ex) {
 46                 ex.printStackTrace();
 47             }
 48             finally{
 49                 if(in1!=null)
 50                     try 
 51                     {
 52                         in1.close();
 53                     }
 54                     catch (IOException ex) 
 55                     {
 56                         ex.printStackTrace();
 57                     }
 58                     if(in2!=null)
 59                     try 
 60                     {
 61                         in2.close();
 62                     }
 63                     catch (IOException ex) 
 64                     {
 65                         ex.printStackTrace();
 66                     }        
 67             }
 68     }
 69 }
 70 class WriterFile 
 71 {
 72     public FileOutputStream run(File f,int i)
 73     {
 74         //构造一个输出流
 75         FileOutputStream out=null;
 76         try {
 77             out=new FileOutputStream(f); 
 78         }
 79         catch (IOException ex) {
 80             ex.printStackTrace();
 81         }
 82         String str="我是第"+i+"个文件"+i+".txt"+"\r\n"; //这两个转义字符在Windows系统中代表换行"\r\n"
 83         System.out.println("向第"+i+"个文件写入:\r\n"+str);
 84         byte[] f1=str.getBytes();
 85         try {
 86                 //将str写入文件
 87                 out.write(f1);
 88                 out.close();
 89         }
 90         catch (IOException ex) {
 91                 ex.printStackTrace();
 92         }    
 93         
94 } 95 public void run1(FileInputStream in1,FileInputStream in2,File outputFile) 96 { 97 SequenceInputStream s=null; 98 FileOutputStream out=null; 99 try 100 { 101 s=new SequenceInputStream(in1,in2); 102 out=new FileOutputStream(outputFile); 103 int c; 104 while((c=s.read())!=-1) 105 out.write(c); 106 s.close(); 107 out.close(); 108 } 109 catch (IOException ex) 110 { 111 ex.printStackTrace(); 112 } 113 finally { 114 if(s!=null) 115 try 116 { 117 s.close(); 118 } 119 catch (IOException ex) 120 { 121 ex.printStackTrace(); 122 } 123 if(out!=null) 124 try 125 { 126 out.close(); 127 } 128 catch (IOException ex) 129 { 130 ex.printStackTrace(); 131 } 132 } 133 } 134 } 135 136 class ReaderFile 137 { 138 public FileInputStream run(File f) 139 { 140 //声明一个文件读入流 141 FileInputStream in =null; 142 try { 143 in=new FileInputStream(f); 144 in.close(); 145 } 146 catch (IOException ex) { 147 ex.printStackTrace(); 148 } 149 finally{ 150 if(in!=null) 151 try { 152 in.close(); 153 } 154 catch (IOException ex) { 155 ex.printStackTrace(); 156 } 157 } 158 return in; 159 } 160 }
复制代码

 

分享到:
评论

相关推荐

    Java实现zp大文件解压、合并、复制、删除(30万文件大约2个小时)

    程序每次解压都去PROVINCE_DIR文件下去解压,将解压后的文件存放到UN_ZIP_PATH下,之后程序启动合并程序合并UN_ZIP_PATH下文件,将合并后的文件按照省份名称存放到OUT_PATH,一个省一个文件。当解压合并结束后,...

    用java把2个tiff或图片合并成一个tiff或图片

    在Java编程环境中,将两个TIFF(Tagged Image File Format)图像或普通图像合并成一个单一的TIFF或图像文件,需要对图像处理有深入的理解,特别是关于图像格式、颜色模型以及位深度的知识。以下是一些相关的技术要点...

    java中两种方式调用其他.exe可执行程序

    Java 中两种方式调用其他.exe 可执行程序 Java 是一种广泛应用于企业级应用开发的编程语言,可以调用其他.exe 可执行程序,实现一些特殊的功能。在 Java 中有两种方式可以调用其他.exe 可执行程序,即使用 `Desktop...

    java代码,将文件夹下文件(包括子文件夹文件),全部合并到一个目标文件中

    java代码,将文件夹下文件(包括子文件夹文件),全部合并到一个目标文件中

    java实现多个docx文档合并(基于docx4j)

    在Java编程环境中,合并多个docx文档是一项常见的需求,特别是在处理大量Word文档的工作场景中。本文将详细介绍如何使用Java和docx4j库来实现这一功能。docx4j是一个强大的开源库,专门用于处理Microsoft Office ...

    java通过文件头内容判断文件类型

    本篇文章将深入探讨如何在Java中通过文件头内容来判断文件类型。 首先,了解文件头的基本概念。文件头是指文件开始的一段字节,不同的文件格式会有不同的文件头结构。例如,JPEG图像文件的开头通常是"FF D8 FF E0...

    java实现mp3合并的方法

    代码实例中,定义了一个名为`Test6`的类,该类包含两个静态方法:`main`和`combine`。`main`方法是程序的入口点,它执行文件合并的过程;`recursion`方法是一个递归函数,用于遍历指定目录及其子目录,收集所有的MP3...

    java源码包---java 源码 大量 实例

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    一个用JAVA写的清除EXE病毒文件的代码

    这个标题为“一个用JAVA写的清除EXE病毒文件的代码”的项目,显然是利用Java来编写的一种防病毒解决方案,主要针对的是可执行文件(EXE)的病毒清理。 描述中提到的“清除EXE病毒文件的代码”,意味着这个Java程序...

    如何把一个java程序打包成exe文件.doc

    在软件开发领域,尤其是对于Java开发者来说,将Java程序打包成EXE文件是一种常见的需求。这不仅可以让程序在没有安装Java运行环境(JRE)的计算机上运行,还能提高程序的安全性和便捷性。下面我们将详细介绍这一过程的...

    利用POI合并多个Excel表

    以下是一个简单的示例,演示如何合并两个Excel文件中的第一张工作表: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io....

    java 实现两excel(或csv)文件的比对(以某几列作为键值,比对指定列的值差异)

    本篇将详细介绍如何使用Java来实现两个Excel(或CSV)文件的比对,以特定列作为键值,并比较指定列的差异。 首先,我们需要导入相关的库。由于Java标准库并不包含处理Excel或CSV的API,因此通常会使用第三方库,如...

    Bin文件合并工具

    Bin文件合并工具,支持设定偏移地址。

    用Java读取.shp文件的工程文件

    这个Java工程文件旨在提供一个解决方案,帮助开发者读取`.shp`文件,获取其中的几何对象坐标,并将这些坐标写入新的文件中。下面我们将深入探讨如何用Java处理`.shp`文件以及相关的技术要点。 首先,要读取`.shp`...

    java按行读取大文件并解析入库

    在Java编程中,处理大容量文本文件是一项挑战,因为传统的逐行读取方式可能会消耗大量内存,导致程序崩溃。为了高效地处理这类问题,我们可以利用Java的`java.nio`包中的BufferedReader和FileChannel等类,实现按行...

    java 大文件(视频)分片上传+压缩

    例如,可以创建一个子进程执行类似于`ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slow output.mp4`的命令,这个命令将输入的MP4文件使用H.264编码压缩,控制质量因子(CRF)为23,预设为“slow”,以获得更...

    java程序自动重新启动

    描述指出,这个程序由三个.java文件组成:Test.java、Watch.java和AbstractRun.java,它们构成了一个简单的自动重启系统。这里,Test.java是主程序,Watch.java是用于监视和检测的线程,而AbstractRun.java可能包含...

    java使用HttpClient通过url下载文件到本地

    在Java编程环境中,HttpClient库是Apache HTTP Components项目的一部分,它为开发者提供了强大的HTTP客户端功能,可以用来发送HTTP请求并接收响应。在这个特定的场景中,我们利用HttpClient来从指定的URL下载文件到...

    Java FTP 指定下载文件和上传文件到指定的服务器目录

    在本篇文章中,我们将详细介绍如何使用Java编程语言通过FTP(文件传输协议)实现文件的上传与下载功能,并能够将文件指定上传或下载到特定的服务器目录下。此方法已经过测试验证,能够满足基本的需求,并且代码易于...

    Class文件转JAVA

    轻松方便的把class文件转化为java文件

Global site tag (gtag.js) - Google Analytics