中文问题,紧急求救!有分!

ruby0531 2003-08-30 11:30:03

shtbl.zip里有个文本文件***.***,文本文件里有些中文的数据,我想实现遇到换行和回车时要替换成',',现在我读取的时候这些中文显示不出来,哪位高手能解决他。

import java.io.*;
import java.util.jar.*;
import java.util.Enumeration;
import java.util.zip.*;

class getContentbyzip {
public static void main(String[] arg) throws Exception {
int count = 0;
int m = 0;
int n = 0;
try {
File e_file = new File("G:\\" + "shtbl.zip"); //源文件
ZipInputStream zipstream = new ZipInputStream(new FileInputStream(e_file));

//InputStreamReader isr=new InputStreamReader (zipstream);
//char[] c=new char[255];
//BufferedReader is = new BufferedReader(isr);



StringBuffer str = new StringBuffer();
String filename = new String(); //存放文件的名称
int len;


//因为zip中约定有且只有两个文件,故用此循环找出sbtbl.csv来
ZipEntry data = zipstream.getNextEntry();//
filename = (String) data.getName();
System.out.println(filename);//打印输出名称
int size = (int) data.getSize();
System.out.println("数据长度" + size);
len = 255;
byte[] b = new byte[len];
int read_len = -1;
int is_do=0;
StringBuffer sbf=new StringBuffer();
while ( (read_len = zipstream.read(b, 0, len) ) != -1) {
for (int k = 0; k <read_len; k++) {
if (13 == b[k]) {
b[k]=44;
count++;//统计数据行数
str.append(",");//遇到换行添加逗号]
} else if (10 == b[k]) {
b[k]=44;
str.append(",");
m++;//统计数据行数
} else {
n++;//字符数
str.append((char)b[k]);

is_do=0;

}
}
sbf.append(new String(b,"gb2312"));
}
System.out.println(sbf);//这里显示sbf,这样


System.out.println("行数:" + count);//打印行数
System.out.println("换行" + m);
System.out.println("转换前 "+str.toString());
System.out.println("转换后 "+new String((str.toString()).getBytes("ISO8859_1"),"gb2312"));
} catch (Exception ee) {
throw new Exception("从zip文件中取数据时出错!" + ee);
}
...全文
29 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruby0531 2003-09-21
  • 打赏
  • 举报
回复
已经解决,我用了BufferedReader包装一下就ok了!
戚爱斌 2003-09-21
  • 打赏
  • 举报
回复
自己解决啦!好!
hpq852 2003-08-30
  • 打赏
  • 举报
回复
new String((str.toString()).getBytes(),"gb2312");
你在试一下,中文的问题,多试几种方法。
dytsoft 2003-08-30
  • 打赏
  • 举报
回复
new String((str.toString()).getBytes("iso8859-1"),"gb2312");
博乐—机器人表演 机器人演出的开拓者 www.boole-tech.com 1 DIY 机器人 第一课 制作机器人的基础 在论坛上经常可以看到有人说:"我是菜鸟,制作机器人需要什么基础?"。其 实我可以回答大家:"基础就是你首先要学好数理化",怎么样很意外吧!现在 我来给大家讲讲为什么这么说。机器人制作综合性很强,它涉及机械制造、计 算机、电子技术等很多领域,每一个领域都是以我们的数理化为基础的,还有就 是要充分利用互联网的资源自我学习。 以下是我在论坛发过的一篇贴子,希望大家用心体会。 高手的秘诀 1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想 出来 再参考别人的提示,你就知道自己和别人思路的差异。 2.别小家子气,买本书几十块都舍不得,你还学个 P。为了省钱看电子书,浪费的时间绝对 超过书的价值。当然如果查资料,只能看 PDF。 3.学习新的开发软件时,一定要看帮助手册。买的书不够全面。刚接触一个软件,什么都不 懂,就盲目的问东问西,让人看起来很幼稚。 4.不要蜻蜓点水,得过且过,细微之处往往体现实力。 5.把时髦的技术挂在嘴边,还不如把过时的技术记在心里。 6.看得懂的书,请仔细看;看不懂的书,请硬着头皮看。 博乐—机器人表演 机器人演出的开拓者 www.boole-tech.com 2 .别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍。 7.多实践,去焊板子、调试,去写去调,只用软件模拟,是永远成不了高手的。 8.保存好你做过的所有的源程序、PCB、原理图等----那是你最好的积累之一。 9.对于网络,还是希望大家能多利用一下,很多问题不是非要到论坛来问的, 首先你要学会 自己找答案,比如 google、百度都是很好的搜索引擎,你只要输入关键字就 能找到很多相 关资料,别老是等待别人给你希望,看的出你平时一定也很懒! 10 到一个论坛,你学会去看以前的帖子,不要什么都不看就发帖子问,也许你的问题早就 有人问过了,你再问,别人已经不想再重复了, 做为初学者,谁也不希望自己的帖子没人回 的。 11,虽然不是打击初学者,但是这句话还是要说:论坛论坛,就是大家讨论的地方,如果 你 总期望有高手总无偿指点你,除非他是你亲戚!! 讨论者, 起码是水平相当的才有讨论的说 法,如果水平真差距太远了,连基本操作都需要别人给解答,谁还跟你讨论呢。 什么样的人是浮躁的人? 浮躁的人容易问:我到底该学什么; ----踏踏实实的学点基本的吧?单片机不知道是什么就想去学 ARM? c 语言不会想搞 LINUX?别老是好高骛远。 浮躁的人容易问:谁有 xxx 源码?--(你给人家多少钱啊?自己的劳动白送你?) 浮躁的人容易说:跪求 xxx ---(就算网络也要点尊严吧?) 浮躁的人容易说:紧急求救---(其实只是个简单的课程设计) 浮躁的人容易说:有没有 xxx 中文资料?---一个字:懒。别说别的。E 文不行?谁不是 博乐—机器人表演 机器人演出的开拓者 www.boole-tech.com 3 从 ABC 学起的啊? 浮躁的人容易说:求 xxx,我的 email 是 xxx@xxx.com,然后消失 ---- 你以为你是大爷啊, 人 家请你吃饭,还要喂到你口里不成? 浮躁的人容易问:做单片机有钱途吗----只是为了钱,搞不好技术的,你去抢银行好了。 浮躁的人容易说:哪里有 xxx 芯片资料?(其实大部分资料网络上都有,但是偏偏来找人 问,懒!) 浮躁的人分两种:只观望而不学的人;只学而不坚持的人; 浮躁的人永远不是一个高手。 lamp 看完后明白了吧,恭喜!你已经迈出了第一步。 第一课就到这里,下课接着讲。 _________________ 第二课 机器人的组成 机器人一般是由以下模块组成: 1.语音模块 用于语音对话、语音控制。 2.灯光表达模块 用于机器人状态显示、感情表达(喜、怒、哀、乐) 3.控制模块 I/O+决策,即机器人的大脑,其控制能力及 AI 由编程者的水平决定。 博乐—机器人表演 机器人演出的开拓者 www.boole-tech.com 4 4.传感器模块 对外界环境的的感知。 5.电源模块 为机器人提供能源,常用有 3v、5v、6v、9v、12v。 6.减速电机 常用于机器人行走驱动,根据需要选择变比。 7.驱动模块 机器人的执行机构,常选用行模中的舵机。 8.视频模块 机器人的眼 9.机械模块 10.无线通讯模块 11.控制软件 一个简单的机器人是由单片机电路、红外传感器、减速电机+程序这是大多数人 认同的,但是我要向大家说这种认识是错误的,真正的机器人不是几片单机和 几台电脑就可以解决,关键就是'机器人'中这个'人'字,还需要我们一代代 的努力。 以上讲的有点简单,先写出。 --

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧