java中字节流转成字符流再转为字节流保存成二进制文件会有什么后果。

Python014

java中字节流转成字符流再转为字节流保存成二进制文件会有什么后果。,第1张

1. InputStream 和OutputStream,两个是为字节流设计的,主要用来处理字节或二进制对象,

2. Reader和 Writer.两个是为字符流(一个字符占两个字节)设计的,主要用来处理字符或字符串.

字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点

所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。在读取文件(特别是文本文件)时,也是一个字节一个字节地读取以形成字节序列

1,字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串

1,

如果是 “字符串数组” 转 “字符串”,只能通过循环,没有其它方法

String[] str = {"abc", "bcd", "def"}

StringBuffer sb = new StringBuffer()

for(int i = 0i <str.lengthi++){

sb. append(str[i])

}

String s = sb.toString()

2,

如果是 “字符数组” 转 “字符串” 可以通过下边的方法

char[]   data={'a','b','c'} 

String  s=new   String(data)

3,

使用StringUtils中的join函数。org.apache.commons.lang.StringUtils

4,

将数组变成字符串

5,

StringUtils.join(str)

// 将数组用逗号分隔变成字符串

StringUtils.join(str, ",")

将字符串变成数组方法:

java.lang包中有String.split()方法,java中通常用split()分割字符串,返回的是一个数组。

特殊,转义字符,必须加"\\"(“.”和“|”都是转义字符)

1,在Java语言编程时,使用“口令字段“jPasswordField组件时,如果要获得密码值,就需要使用该组件的getPassword()方法,

2,jPasswordField的getPassword()方法返回一个char类型的数组,我们经常需要将这个数组转换为String类型,以便进行诸如口令匹配或口令赋值等操作。

3,这时,就需要将char类型的数组进行转换。当然也经常会遇到将String类型转换为char数组的情况。

1 【软件开发】JAVA字符串处理函数列表一览

Java中的字符串也是一连串的字符。但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理。将字符串作为内置的对象处理允许Java提供十分丰富的功能特性以方便处理字符串。下面是一些使用频率比较高的函数及其相关说明。

作者:淘果儿2008-7-21 16:31 回复此发言

--------------------------------------------------------------------------------

2 回复:【软件开发】JAVA字符串处理函数列表一览

substring()

它有两种形式,第一种是:String substring(int startIndex)

第二种是:String substring(int startIndex,int endIndex)

concat() 连接两个字符串

replace() 替换

它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下:

String replace(char original,char replacement)

例如:String s=”Hello”.replace(’l',’w')

第二种形式是用一个字符序列替换另一个字符序列,形式如下:

String replace(CharSequence original,CharSequence replacement)

trim() 去掉起始和结尾的空格

valueOf() 转换为字符串

toLowerCase() 转换为小写

toUpperCase() 转换为大写

length() 取得字符串的长度

例:

char chars[]={’a',’b’.’c'}

String s=new String(chars)

int len=s.length()

charAt() 截取一个字符

例:

char ch

ch=”abc”.charAt(1)

返回值为’b’

getChars() 截取多个字符

void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)

sourceStart 指定了子串开始字符的下标

sourceEnd 指定了子串结束后的下一个字符的下标。因此,子串包含从sourceStart到sourceEnd-1的字符。

target 指定接收字符的数组

targetStart target中开始复制子串的下标值

例:

String s=”this is a demo of the getChars method.”

char buf[]=new char[20]

s.getChars(10,14,buf,0)

作者:淘果儿2008-7-21 16:31 回复此发言

--------------------------------------------------------------------------------

3 回复:【软件开发】JAVA字符串处理函数列表一览

getBytes()

替代getChars()的一种方法是将字符存储在字节数组中,该方法即getBytes()

例:

String s = “Hello!你好!”

byte[] bytes = s.getBytes()

toCharArray()

例:

String s = “Hello!你好!”

char[] ss = s.toCharArray()

equals()和equalsIgnoreCase() 比较两个字符串

regionMatches() 用于比较一个字符串中特定区域与另一特定区域,它有一个重载的形式允许在比较中忽略大小写。

boolean regionMatches(int startIndex,String str2,int

str2StartIndex,int numChars)

boolean regionMatches(boolean ignoreCase,int startIndex,String

str2,int str2StartIndex,int numChars)

startsWith()和endsWith()

startsWith()方法决定是否以特定字符串开始,endWith()方法决定是否以特定字符串结束

equals()和==

equals()方法比较字符串对象中的字符,==运算符比较两个对象是否引用同一实例。

例:String s1=”Hello”

String s2=new String(s1)

s1.eauals(s2)//true

s1==s2//false

compareTo()和compareToIgnoreCase() 比较字符串

indexOf()和lastIndexOf()

indexOf() 查找字符或者子串第一次出现的地方。

lastIndexOf() 查找字符或者子串是后一次出现的地方。

StringBuffer构造函数

StringBuffer定义了三个构造函数:

StringBuffer()

StringBuffer(int size)

StringBuffer(String str)

StringBuffer(CharSequence chars)

下面是StringBuffer相关的函数:

length()和capacity()

一个StringBuffer当前长度可通过length()方法得到,而整个可分配空间通过capacity()方法得到。

ensureCapacity() 设置缓冲区的大小

void ensureCapacity(int capacity)

setLength() 设置缓冲区的长度

void setLength(int len)

charAt()和setCharAt()

char charAt(int where)

void setCharAt(int where,char ch)

getChars()

void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)

append() 可把任何类型数据的字符串表示连接到调用的StringBuffer对象的末尾。

例:int a=42

StringBuffer sb=new StringBuffer(40)

String s=sb.append(”a=”).append(a).append(”!”).toString()

作者:淘果儿2008-7-21 16:32 回复此发言

--------------------------------------------------------------------------------

4 回复:【软件开发】JAVA字符串处理函数列表一览

insert() 插入字符串

StringBuffer insert(int index,String str)

StringBuffer insert(int index,char ch)

StringBuffer insert(int index,Object obj)

index指定将字符串插入到StringBuffer对象中的位置的下标。

reverse() 颠倒StringBuffer对象中的字符

StringBuffer reverse()

delete()和deleteCharAt() 删除字符

StringBuffer delete(int startIndex,int endIndex)

StringBuffer deleteCharAt(int loc)

replace() 替换

StringBuffer replace(int startIndex,int endIndex,String str)

substring() 截取子串

String substring(int startIndex)

String substring(int startIndex,int endIndex)