问题说明:
FileInputStream从in.txt文件中读取文本,再FileOutputStream写入out.txt时会多写入内容,如下文本out.txt文件文本会多出一段“sss”文本内容。而缩短in.txt文本长度时,out.txt文件有时又不会出现多写入文本的现象。
暂时解决:如代码中
- // 利用数组复制的方法解决,只复制从in.txt中一次读取到buffer中的长度的数组
- /*
- * int readLength=0; // read()当到达文件末尾返回-1,实现连续读取写入 while
- * ((readLength = fis.read(buffer)) != -1) {
- *
- * fos.write(Arrays.copyOf(buffer, readLength));
- *
- * }
- */
- package com.java1029.io.stream.d0905.emphasis;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.util.Arrays;
- public class FileStreamDemo {
- public static void main(String[] args) {
- FileOutputStream fos = null;
- FileInputStream fis = null;
- try {
- File OutFile = new File("f:/test/out.txt");
- OutFile.createNewFile();
- // 在原内容上追加
- // fos = new FileOutputStream(OutFile,true);
- fos = new FileOutputStream(OutFile);
- File inFile = new File("f:/test/in.txt");
- inFile.createNewFile();
- fis = new FileInputStream(inFile);
- byte[] buffer = new byte[1024];
- while (fis.read(buffer) != -1) {
- fos.write(buffer);
- }
- // 利用数组复制的方法解决,只复制从in.txt中一次读取到buffer中的长度的数组
- /*
- * int readLength=0; // read()当到达文件末尾返回-1,实现连续读取写入 while
- * ((readLength = fis.read(buffer)) != -1) {
- *
- * fos.write(Arrays.copyOf(buffer, readLength));
- *
- * }
- */
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- fis.close();
- fos.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
in.txt文件文本
- sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbM
- sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss