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"),

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

   

转载于:https://www.cnblogs.com/eco-just/p/7736304.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 模拟输入那点事

因工作原因,需要用到模拟输入这个东东,查阅了一些资料,实现方式有多种,我大概分为两类,命令行类和程序类。 命令行类包括自动化测试组件monkeyrunner,getevent/setevent命令,input命令 程序类包…

arm-linux-gcc:Command not found的问题

标签: ubuntulinux 2015-05-15 10:47 680人阅读 评论(0) 收藏 举报 分类: Ubuntu(23) /etc/profile gcc(9) ARM汇编指令(4) 折腾了一天,终于搞定了。 ubuntu没有roo…

[No0000111]java9环境变量配置bat

保存成bat(utf-8 无签名 编码) 右键以管理员权限运行 修改JAVAINSTALLPATH 为JAVA SDK 安装目录(默认用C:\PROGRAM FILES\JAVA\)即可; 只在 用户变量下 创建,会事先保存好用户原有的“JAVA_HOME,JRE_HOME,P…

去掉浮夸,空杯心态重新面对测试

刚开始一头扎进软件测试行业,从踏踏实实的机械化功能测试,到学会和甲方扯皮,到被鄙视的五体投地后抓紧修炼表面功夫来忽悠人,学的最多的反而是怎么与人交流。第一次面对跳槽的机会,我竟然发现自己的测试能力不升反降。…

PASTE Splay

题目描述 我们用文本处理器来处理一个特殊的文本文件,该文本文件共有N行文本,每一行文本仅包含一个自然数,第一行为1、第二行为2,以此类推至N行为自然数N。   假设对该文本文件执行一次“剪切和粘贴”操作含义如下:…

linux 用户空间通过makefile向程序传递参数

一. 用户空间 因为实际上进行预处理的只是Gcc工具&#xff0c;而make工具只是一个解决依赖关系的工具。所以问题就简化成如何通过make向gcc传递参数。通过简单的例子来说明&#xff1a;hello.c#include <stdio.h> void main(void) {#ifdef DEBUG printf("y…

Spring---基于Spring IOC的小程序

实现的功能以及各文件间的关系 IHelloMessage&#xff1a;一个接口&#xff0c;用于定义输出问候信息。 HelloWorld、HelloChina&#xff1a;接口的实现类。在这里表示人在不同的地方 Person&#xff1a;一个人物类&#xff0c;调用IHelloMessage接口&#xff0c;向用户输出问候…

Web开发者不可不知的16条原则

HTML已经走过了近20的发展历程。从HTML4到XHTML&#xff0c;再到最近十分火热的HTML5&#xff0c;它几乎见证了整个互联网的发展。但是&#xff0c;即便到现在&#xff0c;有很多基础的概念和原则依然需要开发者高度注意。下面&#xff0c;小编向大家介绍这些应该遵循的开发原则…

MIPI DSI协议介绍

原文地址&#xff1a;http://blog.csdn .NET/qq160816/article/details/19555957 一、MIPI MIPI&#xff08;移动行业处理器接口&#xff09;是Mobile Industry Processor Interface的缩写。MIPI&#xff08;移动行业处理器接口&#xff09;是MIPI联盟发起的为移动应用处理器制…

NSArray、NSDictionary、NSString存储、删改、遍历

NSString 创建一个NSString实例&#xff1a;NSString *str “this is string”;//字面量语法 常用API&#xff1a; stringWithFormat //创建动态字符串 -&#xff08;NSUInteger&#xff09;length //获取字符的数量 -isEqualToString: //判断两个字符串是否相等 -uppercaseSt…

2018.11.14成立我的博客

2018.11.14成立我的博客转载于:https://www.cnblogs.com/zengxx/p/9957509.html

130242014018-郑志良-第2次实验

一、实验目的 1&#xff0e;熟悉体系结构的风格的概念 2&#xff0e;理解和应用管道过滤器型的风格。 3、理解解释器的原理 4、理解编译器模型 二、实验环境 硬件&#xff1a; 软件&#xff1a;Python或任何一种自己喜欢的语言 三、实验内容 1、实现“四则运算”的简易翻译器。…

Hi3516A开发--挂载SD卡和U盘

一、SD卡 1、通过fdisk -l命令确认板子上的Linux系统是否识别SD卡 / # fdisk -l Disk /dev/mmcblk0: 63.8 GB, 63864569856 bytes 255 heads, 63 sectors/track, 7764 cylinders Units cylinders of 16065 * 512 8225280 bytes Device Boot Start …

【BZOJ 4170】 4170: 极光 (CDQ分治)

4170: 极光 Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 121 Solved: 64Description "若是万一琪露诺&#xff08;俗称rhl&#xff09;进行攻击&#xff0c;什么都好&#xff0c;冷静地回答她的问题来吸引她。对方表现出兴趣的话&#xff0c;那就慢慢地反问。在她考…

自动生成web服务器日志解析规则

2019独角兽企业重金招聘Python工程师标准>>> 当前web服务器的多样化使得访问日志的数据清洗变得越来越复杂&#xff0c;企业需要投入专业的数据清洗人员编写数据清洗规则&#xff08;解析规则或者解析正则&#xff09;&#xff0c;或者需要关心web服务器访问日志的生…

mybatis一级缓存二级缓存

一级缓存 Mybatis对缓存提供支持&#xff0c;但是在没有配置的默认情况下&#xff0c;它只开启一级缓存&#xff0c;一级缓存只是相对于同一个SqlSession而言。所以在参数和SQL完全一样的情况下&#xff0c;我们使用同一个SqlSession对象调用一个Mapper方法&#xff0c;往往只执…

CMOS Sensor的调试分享

目前&#xff0c;包括移动设备在内的很多多媒体设备上都使用了摄像头&#xff0c;而且还在以很快的速度更新换代。目前使用的摄像头分为两种&#xff1a;CCD(Charge Couple Device电荷偶合器件)和 CMOS(Complementary Metal Oxide Semiconductor互补金属氧化物半导体)。这两种各…

利用反射修改final数据域

当final修饰一个数据域时&#xff0c;意义是声明该数据域是最终的&#xff0c;不可修改的。常见的使用场景就是eclipse自动生成的serialVersionUID一般都是final的。 另外还可以构造线程安全&#xff08;thread safe&#xff09;的immutable类&#xff0c;比如String&#xff0…

mysql简单创建数据库权限(待修改备注)

CREATE DATABASE web DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;一、环境&#xff1a;CentOS 6.8mysql 5.6二、背景给外包的工作人员提供我司某台服务器的 mysql 中某个数据库的访问权限。之所以要做限制&#xff0c;是防止他们对我司其他的数据库非法进行操作。三、…

Centos 能ping通域名和公网ip但是网站不能够打开,服务器拒绝了请求。打开80端口解决。...

博客搬迁&#xff0c;给你带来的不便&#xff0c;敬请谅解&#xff01; http://www.suanliutudousi.com/2017/10/29/centos-%E8%83%BDping%E9%80%9A%E5%9F%9F%E5%90%8D%E5%92%8C%E5%85%AC%E7%BD%91ip%E4%BD%86%E6%98%AF%E7%BD%91%E7%AB%99%E4%B8%8D%E8%83%BD%E5%A4%9F%E6%89%93…