zoukankan      html  css  js  c++  java
  • java文件传输之文件编码和File类的使用

    ---恢复内容开始---

    我们知道,在用户端和服务端之间存在一个数据传输的问题,例如下载个电影、上传个照片、发一条讯息。在这里我们

    就说一下文件的传输。

    1.文件编码

       相信大家小时候玩过积木(没玩过也看过吧),看到一个积木房子,很漂亮,买下来了,那要怎么拿回家呢,当然是

       先把积木房子打散,装到袋子里,拿回家后再拼起来。这就很像我们这里的文件编码,在文件传输时,要对内容进行

       特定编码方式的编码,转化为字节进行传输,然后再通过相同的编码方式进行解码转化为原先的文件。

       我们同样以代码的方式解释一下:

       字符串==>字节数组

       

       上面将字符串转化为字节数组是采用了默认的编码方式GBK,这个编码方式可以在项目属性里面更改,具体步骤自

       行百度,然而我们是可以在不改变项目编码方式的前提下,自定义转换的编码方式:

       

       我们不难看出,对于相同的字符串“桔子桑”,GBK编码下一个中文占两个字节,而UTF-8编码下,

       一个中文占三个字节,作为补充,我们也要知道,英文在两种编码下都只占一个字节。

       注意:java是双字节编码(utf-16be)即中文占两个字节,英文也占两个字节。

       字节数组==>字符串

       上面我们提到过,是以什么方式转码的就以什么方式解码

       

       由于java项目是规定了编码方式的,假如a项目是GBK编码,b项目是UTF-8编码,那么

       a项目下创建一个txt文件复制到b项目是会出现乱码的,因为两个项目的编码方式不同。

    2.File类常用API介绍

       

       上面是一个读取指定目录下所有文件(夹)的方法showfiles(File file)。通过传入一个File对象new File("E:\demo"),

       实现输出该目录下所有文件(夹)的路径。

       

  • 相关阅读:
    线段树 BZOJ1858 [Scoi2010]序列操作
    dfs序+线段树 BZOJ3252 攻略
    线段树 BZOJ3888 [Usaco2015 Jan]Stampede
    线段树 BZOJ1798 [Ahoi2009]Seq 维护序列seq
    大坑【持续更新……】
    LCA树剖法模板
    Tarjan-LCA HDU2586 How far away ?
    动态规划 洛谷P2401 不等数列
    搜索 洛谷P2530 [SHOI2001]化工厂装箱员
    动态规划 洛谷P1077 摆花
  • 原文地址:https://www.cnblogs.com/eco-just/p/7736304.html
Copyright © 2011-2022 走看看