用JAVA遍历目录下的所有文件

编程入门 行业动态 更新时间:2024-10-22 21:17:59

用JAVA<a href=https://www.elefans.com/category/jswz/34/1771029.html style=遍历目录下的所有文件"/>

用JAVA遍历目录下的所有文件

今天被一个哥们问住了:当文件中有ASCII编码和ANSI编码混排的时候,如何区分. 经过查找资料,结果如下: 中文总体上来说有ANSI编码和UNICODE编码
ANSI称之为地区编码,UNICODE是国际编码
ANSI往往是某个国家为自己的语言所创立的,比如GB2312,GBK,BIG5等
UNICODE用来涵盖世界上所有的字符,简单的说就是全球用同一套编码格式. ASCII采用00~7F之间的编码,而ANSI则采用80~FF的两字节表示一个字符,UNICODE文章的开头会以FF FE开头来标识. "123好"的ANSI编码就是"123"以ASCII编码保存而'好'以ANSI保存.
ANSI编码的类型是当字在ASCII表中的时候,就以ASCII保存,如果不在,则以两位80-FF之间的编码保存. 范例: 123好
ASCII:31 32 33 3F (转换时溢出)
ANSI:31 32 33 BA C3
UNICODE:FF FE 31 00 32 00 33 00 7D 59 31 32 33 BA C3  没有以FF FE开头,故不是UNICODE
0< 31,32,33 <7F --ANSI
80< BA,C3 <FF --两字节组成一个ANSI 后来又简单的看了一下半角和全角的问题,其实就是对于ASCII码表中存在的字符是以ASCII码保存(半角)还是以ANSI码保存(全角)的不同而已. 测试程序如下(IDE默认编码:GBK): import  java.io.UnsupportedEncodingException;

/** */ /**
 * @author skylovers
 * 
 */
public   class  CodeTest  ... {
    private static String byte2Hex(byte b) ...{
        String str = "";
        int i = b;
        if(i<0)...{
            i=b+256;
        }
        char[] chars = new char[] ...{ '0', '1', '2', '3', '4', '5', '6', '7',
                '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
        int poit = i / 16;
        str += chars[poit];
        poit = i % 16;
        str += chars[poit];
        return str;
    }

    /** *//**
     * @param args
     */
    public static void main(String[] args) ...{

        String str = "123好";
        byte[] code = str.getBytes();
        for (byte b : code)
            System.out.print(byte2Hex(b) + " ");
        System.out.println();
        try ...{
            code = str.getBytes("unicode");
        } catch (UnsupportedEncodingException e) ...{
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        for (byte b : code)
            System.out.print(byte2Hex(b) + " ");
        System.out.println();
        try ...{
            code = str.getBytes("ascii");
        } catch (UnsupportedEncodingException e) ...{
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        for (byte b : code)
            System.out.print(byte2Hex(b) + " ");
        System.out.println();
        System.out.println(new String(code));
        
    }

}


 

更多推荐

用JAVA遍历目录下的所有文件

本文发布于:2024-03-09 05:54:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1724064.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:遍历   文件   目录下   JAVA

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!