zhyiwww
用平实的笔,记录编程路上的点点滴滴………
posts - 536,comments - 394,trackbacks - 0
输入流的编码
比如,在上传文件的时候,我们知道文件的编码是GB2312

        String fileEnc="GB2312";

    byte[] data = ff.getFileData();
    InputStream in = new ByteArrayInputStream(data);
            
            // very very important
    InputStreamReader isr = new InputStreamReader(in,fileEnc);

    BufferedReader br = new BufferedReader(isr);

这样就可以取得一个GB2312的文件输入流

所以,默认的输出是UTF8,比如

            FileWriter w = new FileWriter(f);
            log.info("the new file encoding is : "+w.getEncoding());
            
            while ((str = br.readLine()) != null) {
                w.write(str + "\n");
                log.info("line content : " + str);
                
                lines.put(str);
                //TODO
//                lines.put(encodeString(str, fileEnc));
            }

那么输出的文件格式UTF-8

如果你想输出GB2312编码的文件,可以用下面的方法
            
            FileOutputStream out = new FileOutputStream(f);
            
            OutputStreamWriter www = new OutputStreamWriter(out,"GB2312");
            
            log.info("the new file encoding is : "+w.getEncoding());
            
            while ((str = br.readLine()) != null) {
                www.write(str + "\n");
                log.info("line content : " + str);
                
                lines.put(str);
                //TODO
//                lines.put(encodeString(str, fileEnc));
            }

            




|----------------------------------------------------------------------------------------|
                           版权声明  版权所有 @zhyiwww
            引用请注明来源 http://www.blogjava.net/zhyiwww   
|----------------------------------------------------------------------------------------|
posted on 2009-06-18 17:15 zhyiwww 阅读(823) 评论(0)  编辑  收藏 所属分类: j2ee

只有注册用户登录后才能发表评论。


网站导航: