java如何获取字符串的字节数

Python023

java如何获取字符串的字节数,第1张

字符串是可以转变成字节数组,然后统计一下字节数组的长度即可,参考如下代码:

Java语言中,中文字符所占的字节数取决于字符的编码方式,一般情况下,采用ISO8859-1编码方式时,一个中文字符与一个英文字符一样只占1个字节;采用GB2312或GBK编码方式时,一个中文字符占2个字节;而采用UTF-8编码方式时,一个中文字符会占3个字节。

public static void main(String []args) throws UnsupportedEncodingException {

// 运行结果:2

System.out.println("测试".getBytes("ISO8859-1").length)

// 运行结果:4

System.out.println("测试".getBytes("GB2312").length)

// 运行结果:4

System.out.println("测试".getBytes("GBK").length)

// 运行结果:6

System.out.println("测试".getBytes("UTF-8").length)

}

字节流读取数据例子如下:

import java.io.File

import java.io.FileInputStream

import java.io.FileNotFoundException

import java.io.FileOutputStream

import java.io.IOException

/**

 * 复制文件

 * @author young

 *

 */

public class CopyFile {

public static void main(String[] args) {

/* 指定源exe文件的存放路径 */

String str = "f:/jdk-1_5_0_06-windows-i586-p.exe"

/* 指定复制后的exe的目标路径 */

String strs = "e:/copy.exe"

/* 创建输入和输出流 */

FileInputStream fis = null

FileOutputStream fos = null

try {

/* 将io流和文件关联 */

fis = new FileInputStream(str)

fos = new FileOutputStream(strs)

byte[] buf = new byte[1024 * 1024]

int len

while ((len = fis.read(buf)) != -1) {

fos.write(buf, 0, len)

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} finally {

try {

fis.close()

fos.close()

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

}

}