FileInputStream从文件中读取,FileOutputStream写入时会多写入内容
2015-10-28 10:02
585 查看
问题说明:
FileInputStream从in.txt文件中读取文本,再FileOutputStream写入out.txt时会多写入内容,如下文本out.txt文件文本会多出一段“sss”文本内容。而缩短in.txt文本长度时,out.txt文件有时又不会出现多写入文本的现象。
暂时解决:如代码中
[java] view
plaincopy
// 利用数组复制的方法解决,只复制从in.txt中一次读取到buffer中的长度的数组
/*
* int readLength=0; // read()当到达文件末尾返回-1,实现连续读取写入 while
* ((readLength = fis.read(buffer)) != -1) {
*
* fos.write(Arrays.copyOf(buffer, readLength));
*
* }
*/
[java] view
plaincopy
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文件文本
[plain] view
plaincopy
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbM
out.txt输出文本
[plain] view
plaincopy
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
FileInputStream从in.txt文件中读取文本,再FileOutputStream写入out.txt时会多写入内容,如下文本out.txt文件文本会多出一段“sss”文本内容。而缩短in.txt文本长度时,out.txt文件有时又不会出现多写入文本的现象。
暂时解决:如代码中
[java] view
plaincopy
// 利用数组复制的方法解决,只复制从in.txt中一次读取到buffer中的长度的数组
/*
* int readLength=0; // read()当到达文件末尾返回-1,实现连续读取写入 while
* ((readLength = fis.read(buffer)) != -1) {
*
* fos.write(Arrays.copyOf(buffer, readLength));
*
* }
*/
[java] view
plaincopy
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文件文本
[plain] view
plaincopy
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbM
out.txt输出文本
[plain] view
plaincopy
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
相关文章推荐
- Thinkphp学习笔记-模板主题
- thinkphp下载远程图片到本地
- [Windows Server 2012] 安装IIS8.5及FTP
- Error 13 error C3861: 'GetPrivateProfileString': identifier not found
- php 压缩各格式图片,处理png格式图片背景黑色问题
- thinkphp中 select() 和find() 方法的区别
- PHP实现敏感词过滤系统
- TP框架,看完,你就能做一个TP框架做的小项目
- ntpd、ntpdate的区别
- FTP主动模式和被动模式的比较
- windows 上传ftp的一个小脚本
- Laravel报错:Session store not set on request.
- Thinkphp学习笔记-controller与view绑定
- ThinkPHP学习实践(一)ThinkPHP重要概念与技术思想索引
- 日常收集整理php正则表达式(超常用)
- PHP中基于perl的正则表达式处理函数
- 搭建FTP服务器
- php判断当前操作系统类型
- PHP框架Laravel学习心得体会
- php实现阳历阴历互转的方法