文件的合并问题
大家帮我看看这个程序哪里出问题了?
怎么得不到我要的结果?
/**
* 功能:
*将文件夹a里所有文本文件的数据读入文件夹b中,
* 并将其平均分割为10k的文件,
* 文件名分别为1.txt,2.txt ......
*/
import java.io.*;
import java.util.*;
public class IoDemo {
RandomAccessFile rfin;
RandomAccessFile rfout;
static int j=1;
static File goal = new File("b" +File.separator+ j + ".txt");
public static void main(String args[])
{
IoDemo demo = new IoDemo();
File f1=new File("a");
Vector v=demo.getAllFile(f1);
File f;
for (int i = 0; i < v.size(); i++) {
System.out.println("in "+i+" file");
f=(File)v.elementAt(i);
demo.write(f);
}
}
private void write(File source){
try {
rfin= new RandomAccessFile(source,"r");
rfout= new RandomAccessFile(goal,"rwd");
char ch;
//判断是否读到文件的结尾
while(rfin.getFilePointer()<source.length()-1){
ch=rfin.readChar();
rfout.writeChar(ch);
if(goal.length()>=10240)
{
rfout.close();
System.out.println("j="+j);
j++;
goal = new File("b" +File.separator+ j + ".txt");
rfout = new RandomAccessFile(goal, "rwd");
}
}
rfin.close();
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
ex.printStackTrace();
}
}
private Vector getAllFile(File f)
{
File[] file = f.listFiles();
Vector v = new Vector();
for (int i = 0; i < file.length; i++) {
if (file[i].isDirectory()) {
getAllFile(file[i]);
}
else if(file[i].isFile()&&(file[i].getName().endsWith(".txt")))
{
v.add(file[i]);
}
}
return v;
}
}
问题点数:50、回复次数:2Top
1 楼zsh6709(世界上没有后悔药吃的!!!)回复于 2006-11-03 19:51:32 得分 0
能不能加点注释,这样看很累的Top
2 楼nihao620(Emmy)回复于 2006-11-03 20:12:17 得分 0
/**
* 功能:
*将文件夹a里所有文本文件的数据读入文件夹b中,
* 并将其平均分割为10k的文件,
* 文件名分别为1.txt,2.txt ......
*/
import java.io.*;
import java.util.*;
public class IoDemo {
static RandomAccessFile rfin;
static RandomAccessFile rfout;
static int j=1;
static File goal = new File("b" +File.separator+ j + ".txt");
public static void main(String args[])
{
IoDemo demo = new IoDemo();
File f1=new File("a");
Vector v=demo.getAllFile(f1);
File f;
for (int i = 0; i < v.size(); i++) {
System.out.println("in "+i+" file");
f=(File)v.elementAt(i);
demo.write(f);
}
try{
if(rfin!=null)
rfin.close();
if(rfout!=null)
rfout.close();
}catch(IOException e){}
}
/*
将文件source的数据读到文件夹goal中,另取名字为1.txt,2.txt....
*/
private void write(File source){
try {
rfin= new RandomAccessFile(source,"r");
rfout= new RandomAccessFile(goal,"rwd");
char ch;
//判断是否读到文件的结尾
while(rfin.getFilePointer()<source.length()-1){
ch=rfin.readChar();
rfout.writeChar(ch);
//判断文件的大小
if(goal.length()>=10240)
{
rfout.close();
System.out.println("j="+j);
j++;
//新建另一个文件和输出流
goal = new File("b" +File.separator+ j + ".txt");
rfout = new RandomAccessFile(goal, "rwd");
}
}
rfin.close();
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
ex.printStackTrace();
}
}
/*
获取文件f中的所有文本文件,将它们放入向量v中返回。
*/
private Vector getAllFile(File f)
{
File[] file = f.listFiles();
Vector v = new Vector();
for (int i = 0; i < file.length; i++) {
if (file[i].isDirectory()) {
getAllFile(file[i]);
}
else if(file[i].isFile()&&(file[i].getName().endsWith(".txt")))
{
v.add(file[i]);
}
}
return v;
}
}
Top




