14.Java(String Buff)

StringBuffer类

StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。
在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。
在StringBuffer类中存在很多和String类一样的方法,这些方法在功能上和String类中的功能是完全一样的。

特点:

StringBuffer是线程安全、同步的、效率低,是一个可变的字符序列且内容可以被修改。可以指定其容量的大小,默认容量不足时则可以自动增加容量。

StringBuffer的构造方法

 //无参构造
 public StringBuffer()
 //指定容量的字符串缓冲区对象
 public StringBuffer(int capacity)
 //指定字符串内容的字符串缓冲区对象
 public StringBuffer(String str)

StringBuffer的方法

返回当前容量:理论值

public int capacity()

返回长度(字符数):实际值

public int length()

把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身,

public StringBuffer append(String str)

在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身,

public StringBuffer insert(int offset,String str)

删除指定位置的字符,并返回本身

public StringBuffer deleteCharAt(int index)

删除从指定位置开始到指定位置结束的字符串,并返回本身

public StringBuffer delete(int start,int end)

从start开始到end用str替换

public StringBuffer replace(int start,int end,String str)

字符串反转

public StringBuffer reverse()

从头查找该字符串,在容器中第一次出现的索引,如果找不到就返回-1.

int indexOf (String str)

从指定索引处开始查找该字符串第一次出现的索引,如果找不到就返回-1

int indexOf (String str,int fromIndex)

从后往前找

int lastIndexOf (String str)

int lastIndexOf (String str,int fromIndex)

从指定位置截取到末尾

public String substring(int start)

截取从指定位置开始到结束位置,包括开始位置,不包括结束位置

public String substring(int start,int end)

StringBuffer和String的相互转换

StringBuffer --> String
  1. 使用substring方法
  2. 通过构造方法
  3. 通过toString()方法
String --> StringBuffer
  1. 通过构造方法
  2. 通过append()方法

StringBuffer和StringBuilder的区别

1、StringBuffer多线程安全的,StringBuilder多线程不安全

2、StringBuffer从JDK1.0就有了,StringBuilder是JDK5.0才出现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码主要是用于将服务器上的文件下载到客户端,以下是每一行代码的详细解释: ```java long fileLength = new File(downLoadPath).length(); ``` 获取文件的长度,即文件大小。 ```java response.setContentType("application/x-msdownload;"); ``` 设置响应头的 Content-Type,表示响应的内容类型为下载文件。 ```java response.setHeader("Content-disposition", "attachment; filename=" + new String(fileName.getBytes("utf-8"), "ISO8859-1")); ``` 设置响应头的 Content-disposition,表示将文件作为附件下载,并指定文件名。 ```java response.setHeader("Content-Length", String.valueOf(fileLength)); ``` 设置响应头的 Content-Length,表示响应内容的长度为文件大小。 ```java bis = new BufferedInputStream(new FileInputStream(downLoadPath)); bos = new BufferedOutputStream(response.getOutputStream()); ``` 创建 BufferedInputStream 和 BufferedOutputStream 对象,分别用于读取文件和向浏览器发送响应。 ```java byte[] buff = new byte[2048]; int bytesRead; while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) { bos.write(buff, 0, bytesRead); } ``` 将文件内容写入响应输出流,每次读取 2048 字节。循环读取文件内容并写入输出流,直到文件结束。同时,每次读取的字节数可能小于 2048 字节,所以需要记录实际读取的字节数 bytesRead,并只写入 bytesRead 个字节。最终,通过输出流将文件内容发送到浏览器进行下载。如果出现异常,则打印异常信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值