| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 495 人关注过本帖
标题:请教一个关于流的问题。(已解决)
只看楼主 加入收藏
真爱小刀
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-8-21
收藏
 问题点数:0 回复次数:5 
请教一个关于流的问题。(已解决)

题目是这样的:
要求,从一个已有文件里读取数据,再以10000字节为一个单位写入自动创建的一个新的文件中,最后的不满10000字节的零头写入最后一个文件里,也就相当于把一个大文件分成了多个小文件,每个小文件都是10000字节。
分完之后,又要把这些小文件重新写入到一个新的文件里,相当于合并回去。


我的思路是:
1. 先得到大文件的总字节数。
2. 然后用byte[]将容量设置为大文件的总字节数。
3. 读入大文件数据,然后用subString()方法,每10000字节截取一次,再创建一个小文件将数据写入进去。
4. 创建一个新的文件,再讲小文件内数据按顺序写入。

我的问题是:
我用byte[]来设置容量,这里都是字节数。但是,后面用subString()来截取时是用字符串下标来截取的。当大文件中没有汉字时这种方法可以用,但是有汉字时,一个汉字是两个字节,最后写入到小文件里的字节数就不准确了,不会是10000整。这该怎么解决?


其它地方都没问题,就是这个关键的地方怎么也想不明白,有朋友能解除我的疑惑吗?谢谢!

[此贴子已经被作者于2007-11-9 20:16:13编辑过]

2007-11-08 21:08
netstriker
Rank: 1
等 级:新手上路
威 望:1
帖 子:257
专家分:0
注 册:2007-3-24
收藏
得分:0 

写了一个例子,不知可吾可以帮到你,再有问题的话就再提出来吧.
import java.io.*;
public class inputStreamTest {

File file;
public inputStreamTest()
{
try{
file = new File("D:\\test.txt"); //可以填写自己需要的文件路径

InputStream is = new FileInputStream(file);
OutputStream os =null ;

ByteArrayOutputStream baos = new ByteArrayOutputStream();

System.out.println("www.it.com.cn 1");
byte buf[] = new byte[1000]; //第一个1000个字节的文件
int len=0;
while((len = is.read(buf))!=-1)
{
baos.write(buf,0,len); //每一部分都把它读入baos输出字节流中.
}
byte contentByte[] = baos.toByteArray(); //全部合成为一个整体的byte文件
String content = new String(contentByte,"UTF-8");
System.out.println("the content is "+content); //输出文件

is.close();
os.close();
baos.close();
}catch(Exception e)
{}
}
public static void main(String args[])
{
new inputStreamTest();
}
}

[此贴子已经被作者于2007-11-8 22:20:38编辑过]

2007-11-08 22:19
真爱小刀
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-8-21
收藏
得分:0 
已经写好了,谢谢楼上的朋友。
2007-11-09 20:15
cindy051185
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-10-12
收藏
得分:0 
baos.write(buf,0,len); 这句话什么意思???2楼朋友写的我实在是看不懂我写个 你看下这个

2007-11-13 09:07
huwangvs
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:764
专家分:0
注 册:2007-2-4
收藏
得分:0 

将buf这个字节数组里的从0到len长度的值写入到baos里

2007-11-13 09:09
cindy051185
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-10-12
收藏
得分:0 
我知道了  我基础太差了

2007-11-14 10:45
快速回复:请教一个关于流的问题。(已解决)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018504 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved