Java从文件中读取了byte[] 转换成String 修改String以后 再转换成byte[]进行下载 文件内容显示不全

byte[] buffer = new byte[in.available()];
int i = -1;
while ((i = bis.read(buffer)) != -1) {
//response.getOutputStream().write(buffer,0, i);
logger.info(buffer);
}
String s = new String(buffer); //获取的文件里的文本内容

                    String ss = changeText(s);  //将文本内容修改了一下

            InputStream fileInputStream = new ByteArrayInputStream(ss.getBytes("gbk"));  
        bis = new BufferedInputStream(fileInputStream);
        byte[] bytes = new byte[bis.available()];

        ServletOutputStream outputStream = response.getOutputStream();
        while ((i = bis.read(bytes)) != -1) {
            outputStream.write(bytes,0, i);
            outputStream.flush();
        }

        //outputStream.write(changeText(s).getBytes("gbk"));
        // outputStream.flush();
        //outputStream.close();

                Java从文件中读取了byte[] 转换成String 修改String以后 再转换成byte[]进行下载 文件内容显示不全
                原来的内容
                ![图片说明](https://img-ask.csdn.net/upload/202010/14/1602643836_38715.png)
                修改后缺了一截
                ![图片说明](https://img-ask.csdn.net/upload/202010/14/1602643850_732027.png)
@Controller
@RequestMapping("/test")
public class DownloadFileTest {
    @RequestMapping("/download")
    public void download(HttpServletResponse response, HttpServletRequest request) throws Exception {
        //读入
        File file = new File("C:\\Users\\16500\\Desktop\\life_think.txt");
        FileInputStream in = new FileInputStream(file);
        byte[] buffer = new byte[in.available()];
        int readLength = -1;
        int writeLength = -1;
        readLength = in.read(buffer);
        String s = new String(buffer,"UTF-8");
        System.out.println(s);
        //String ss = changeText(s);  //将文本内容修改了一下
        //写出下载
        //1.设置响应类型
        response.setContentType(request.getServletContext().getMimeType(file.getPath()));
        //2.设置响应头的Content-Dispostion,attachment;filename=filename   URLEncoder.encode()  -  防止在谷歌IE上面中文文件名乱码
        response.setHeader("Content-Disposition", "attachment; filename=" + "life_think.txt");
        BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(s.getBytes("UTF-8")));
        byte[] bytes = new byte[bis.available()];
        //3.响应写出  不加1和2步骤则是响应文本
        ServletOutputStream outputStream = response.getOutputStream();
        while ((writeLength = bis.read(bytes)) != -1) {
            outputStream.write(bytes,0, writeLength);
            outputStream.flush();
        }
        outputStream.close();
        bis.close();
        in.close();
    }
}

图片说明

readLine()用这个方法试试