Topic: 菜鸟题目求救~~~关于节点流的问题

  Print this page

1.菜鸟题目求救~~~关于节点流的问题 Copy to clipboard
Posted by: talentfly
Posted on: 2006-06-12 11:26

这是张孝祥老师的题:编写一个程序,将一个目录及其子目录下的所有txt类型的文本文件中的内容合并到若干个新的文本文件中,当第一个新产生的文件中存储的内容大到1Mbytes的时,剩下的内容存储到第二个新的文件中,依次往下,新产生的文本文件名依次为1txt.2txt。。。。
小弟无法解决:1、将一个目录及其子目录下的所有txt类型的文本文件中的内容合并到若干个新的文本文件中?2、依次往下,新产生的文本文件名依次为1txt.2txt。。。。?
望各位大虾门相帮助。指点小弟如何解决上述问题。(能给我完整的代码更好)
扶梯膜拜~~~~

2.Re:菜鸟题目求救~~~关于节点流的问题 [Re: talentfly] Copy to clipboard
Posted by: Skybus
Posted on: 2006-06-12 16:11

授人以鱼不如授人以渔!建议楼主先按照下面的流程自己实际编写一下,遇到问题然后再讨论会比较好一点!

题目:将一个目录(包括其子目录)下的所有txt类型的文本文件中的内容合并到若干个新的文本文件中,新文件的文件名依次为1.txt,2.txt,... .
要求:每个新产生的文件的大小不超过1Mbytes

操作流程:
1 .查找该目录(包括子目录)下所有的文件,将名字为*.txt的文件保存在一个文件数组TextFile中。从这个数组中可以获取这些txt文件的大小,数目等。
2 .建立一个for循环遍历TextFile数组。
对每一个数组中的文本文件,打开一个输入流对象,将其内容写入到新建文件(1.txt或2.txt)所对应的一个输出流OutPutStream对象中。
这里有两点要注意:一是输入流对象每次要读多少字节到输出流对象中?二是什么时候判断新建文件的大小是否大于1m字节?
3 .列出该文件下新建文件的名字以及它们的大小

程序中使用到最多的应该是java.io这个包,仔细阅读一下这个包文件,完成该程序应该不是问题。
java.io参看:
英文:http://java.sun.com/j2se/1.4.2/docs/api/java/io/package-summary.html
中文:http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/index.html
说的不当之处,欢迎讨论

3.Re:菜鸟题目求救~~~关于节点流的问题 [Re: talentfly] Copy to clipboard
Posted by: talentfly
Posted on: 2006-06-12 21:11

谢谢上面的兄台了 太感谢了~~~

4.Re:菜鸟题目求救~~~关于节点流的问题 [Re: talentfly] Copy to clipboard
Posted by: talentfly
Posted on: 2006-06-12 21:58

楼上的大哥:可能是我第一次发帖说不清楚,关于java.io中类的应用我能搞定,但是就是不懂得向你说的那样:1 .查找该目录(包括子目录)下所有的文件,将名字为*.txt的文件保存在一个文件数组TextFile中。从这个数组中可以获取这些txt文件的大小,数目等。。。。我只能通过File类中Flie.list()方法显示一个文件夹中的文件,但是不懂得你所给我提出的那些方法,所以想问问怎么去操作;就这样说吧:我除了懂把一个.txt文件中的内容传到另一个.txt中但是我能够做到:(一是输入流对象每次要读多少字节到输出流对象中。二是什么时候判断新建文件的大小是否大于1m字节。)
其它的什么怎么样在一个文件中读取所有的.txt文件啊,怎么样将内容依次存储到新生成文件名依次为1.txt,2.txt,的.txt的文件中,都不知道去操作。在java.io中也没找到类似的方法。
希望大哥能够给我写一下主要用到的方法的代码,(小弟愚笨还请见谅)

5.Re:菜鸟题目求救~~~关于节点流的问题 [Re: talentfly] Copy to clipboard
Posted by: Skybus
Posted on: 2006-06-13 00:08

查找目录下所有的文件参看:
http://javaalmanac.com/egs/java.io/TraverseTree.html?l=rel
上面这个程序可以找到一个目录(包括子目录)下所有的文件,要找到txt文件,最直接的方法就是比较它们的名字。
static ArrayList array = new ArrayList();
public static void visitAllFiles(File dir) {
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i = 0; i < children.length; i++) {
visitAllFiles(new File(dir, children[i]));
}
} else {
String name = dir.getName();
String sub=name.substring(name.length()-3, name.length());
if(sub.equals("txt"))
array.add(dir);
}
}

6.Re:菜鸟题目求救~~~关于节点流的问题 [Re: talentfly] Copy to clipboard
Posted by: talentfly
Posted on: 2006-06-13 16:15

太感谢拉~~虽然我还没看但是我相信得到大哥的指点一定能拿下这题~~先谢,等做出来拉 再谢~!~


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923