java字符字节相关知识
-
Java------字节流和字符流(I)字节流:读写字节文件,通常使用字节流,如:二进制文件,.jpg,.mp3,.avi,.exe,.com,.dll windows平台的执行文件:.exe,.com,.dll 字符流:读写字符文件,通常使用字符流,如:.txt,.java,.css,.doc,.html,*.xml 字节流可以读写任意文件。字符流不能读写字节文件。 字节流的概念 传输的数据单位是字节,也意味着字节流能够处理任何一种文件 字节流的组成:InputStream/OutputStream 以 Stream 结尾的是字节流,字节流只能处理字节流 以 Writer/Reader 结尾的是字符流,字符流既可以
-
Java-------字符流和字节流(III)字符流 1) 编码问题 2)认识文本和文本文件 java的文本(char)是16位无符号整数,是字符的unicode编码(双字节编码) 文件是byte byte byte ...的数据序列 文本文件是文本(char)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的存储结果 3)字符流(Reader Writer)---->操作的是文本文本文件 字符的处理,一次处理一个字符 字符的底层任然是基本的字节序列 字符流的基本实现 InputStreamReader 完成byte流解析为char流,按照编码解析 OutputStreamWriter 提供char流到byte流
-
位(bit)、字节(byte)、字符、编码1、位: 也叫比特位,数据存储的最小单位。每个二进制数字0或者1就是1个位; 2、字节: 8个位构成一个字节。即:1 byte (字节)= 8 bit (位); 1 B = 1 byte (字节) 1 KB = 1024 B(字节); 1 MB = 1024 KB; (2^10 B) 1 GB = 1024 MB; (2^20 B) 1 TB = 1024 GB; (2^30 B) 3、字符: a、A、中、+、*、の......均表示一个字符; 一般 utf-8 编码下,一个汉字字符占用 3 个 字节; 一般 gbk 编码下,一个汉字字符占用 2 个 字节; 4、字符集
-
Java------字符流和字节流(II)java字节流实现文件夹的拷贝: package com.java.io; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; /** java字节流实现文件夹的拷贝 拷贝文件夹,其中文件夹中又有多个文件 1.先遍历这个文件夹,判断是否是目录 2.创建文件夹 3.拷贝文件到新的地方 */ public class FileDirectoryCopyDemo { //遍历文件夹 public static void
java字符字节相关课程
java字符字节相关教程
- Java 字符串 在 Java 基本数据类型一节中,我们已经知道 Java 中有两大数据类型:一个是基本数据类型,另一个是引用数据类型。字符串(String)便属于引用数据类型。字符串在 Java 程序中无处不在,其实我们在第一个 Java 程序中就已经使用过了字符串,打印语句中双引号中的Hello World就是一个字符串:System.out.println("Hello World");本小节我们将介绍字符串的基础知识,告诉你如何创建一个字符串,也会讲到 Java 13支持的多行字符串的创建方法和注意事项,还会介绍很常用的字符串的连接操作,最后我们也会着重讨论字符串的一个重要特性:不可变性。需要注意的是,String是在java.lang包中定义的内置类,了解它的相关操作需要面向对象的前置知识,为了减少初学者的困扰,字符串的相关操作不会在本小节讨论。我们将在完成面向对象的学习后专门讲解String类。
- 5. Java ByteBuffer 的字节序 那么 JVM 作为一部独立运行的机器,它的字节序又是如何呢?通过 Java 程序测试字节序的思路和 C 程序的一致,代码片段如下: public static void checkEndian() { int x = 0xAABBCCDD; ByteBuffer buffer = ByteBuffer.allocate(Integer.BYTES); buffer.putInt(x); byte[] lbytes = buffer.array(); for (byte b : lbytes){ System.out.printf("%X\n", b); } }关于 JAVA 程序需要说明的是 JAVA 中没有指针的概念,所以不能通过取地址的方式直接打印内存的值。需要借助 JAVA 的 ByteBuffer,将 int 型数值存储到 ByteBuffer 中,然后将 ByteBuffer 转换成字节数组,通过打印数组的方式来达到我们的目的。引用 ByteBuffer 需要通过语句 import java.nio.ByteBuffer; 导入ByteBuffer 类。JAVA 测试结果:AABBCCDD从输出结果可以看出 ByteBuffer 默认是以大端序来存储整数的,因为 Java 虚拟机本身采用的就是大端序,ByteBuffer 也要和整个系统保持一致。当然,ByteBuffer 也提供了 ByteBuffer order() 和 ByteBuffer order(ByteOrder bo) 方法,用来获取和设置 ByteBuffer 的字节序。另外,像一些多字节 Buffer,如 IntBuffer、LongBuffer,它们的字节序规则如下:如果多字节 Buffer 是通过数组(Array)创建的,那么它的字节序和底层系统的字节序一致。如果多字节 Buffer 是通过 ByteBuffer 创建的,那么它的字节序和 ByteBuffer 的字节序一致。测试程序如下: public static void checkByteBuffer(){ ByteBuffer byteBuffer = ByteBuffer.allocate(Long.BYTES); long [] longNumber = new long[]{ 0xAA,0xBB,0xCC,0xDD }; LongBuffer lbAsArray = LongBuffer.wrap(longNumber); System.out.println("The byte order for LongBuffer wrap array: " + lbAsArray.order()); LongBuffer lbAsByteBuffer = byteBuffer.asLongBuffer(); System.out.println("The byte order for LongBuffer from ByteBuffer: " + lbAsByteBuffer.order()); }执行结果:The byte order for LongBuffer wrap array: LITTLE_ENDIANThe byte order for LongBuffer from ByteBuffer: BIG_ENDIAN如果在上面的 checkByteBuffer 方法中,首先将对象 byteBuffer 的字节序设置为 ByteOrder.LITTLE_ENDIAN(通过 ByteBuffer 的 order 方法设置),然后再创建 lbAsByteBuffer 对象,那么 lbAsByteBuffer 的字节序该是什么呢?
- 2. Java 字节流结构 Java 的 java.io.* 包中包含了 InputStream 和 OutputStream 两个类,是 Java 字节流 I/O 的基础类,其他具体的 Java I/O 字节流功能类都派生自这两个类。图中只列出了我们 Socket 编程中常用的 I/O 字节流类。java.net.SocketInputStream 类是 Socket 的输入流实现类,它继承了 java.io.FileInputStream 类。java.net.SocketOutputStream 类是 Socket 的输出流实现类,它继承了 java.io.FileOutputStream 类,下来我们逐一介绍这些类的基本功能。
- 5. 字符类型 字符类型 char 表示一个字符。Java 中的 char 类型除了可表示标准的 ASCII 外,还可以表示一个 Unicode 字符:433运行结果:a慕Java 语言还为 char 和 String 类型(String 类型将在后面单独讲解),支持一些特殊的转义序列:符号代表字符 \ n 换行(0x0a)\ r 回车(0x0d)\F 换页(0x0c)\ b 退格(0x08)\ s 空格(0x20)\ t 制表符 " 双引号’单引号 \\ 反斜杠 \ddd 八进制字符(ddd)\ uxxxx 十六进制 Unicode 字符(xxxx)
- 2.1 字符串 String 在 Groovy 中,字符串较 Java 中比较特殊,在 Java 中我们用单引号(’’)来表示 char,用双引号("")表示字符串。但是在 Groovy 中字符串不仅可以用双引号 (""),而且单引号 (’’),三引号 ("’’")也可以。我们看下下面这个例子:class Example { static void main(String[] args) { String a = '单引号'; String b = "双引号"; String c = '''这是三引号 Gradle专题 Groovy语言基础'''; println(a); println(b); println(c); } }最终输出结果为:单引号双引号这是三引号 Gradle专题 Groovy语言基础我们发现三引号(’’’ ‘’’)其实还可以换行,多行字符串也可以用三引号(’’’ ‘’’)来引用。不像 Java 一样我们如果字符串换行还需要用“ + 和 \n”连接起来。
- 6. 网络字节序 前面两小节讨论的都是 CPU、Java 虚拟机的字节序,通常叫做主机(host)字节序。在网络编程中,字节流在网络中传输是遵循大端序的,也叫网络字节序。由于 Java 虚拟机的字节序和网络字节序是一致的,对于 Java 程序员来说,通常不太关心字节序的问题。然而,当 Java 程序和 C 程序进行通信的时候,需要关心字节序的问题。
java字符字节相关搜索
-
j2ee
j2ee是什么
jar格式
java
java api
java applet
java c
java jdk
java list
java map
java script
java se
java socket
java swing
java switch
java web
java xml
java 程序设计
java 多线程
java 环境变量