各自努力,最高处见!加油!
一、文件的拷贝
代码示例
- 创建文件的输入流,将文件读取到输出流
- 在完成程序时,应该是读取部分数据,就写入到新的文件里(避免因为内存不够等原因造成异常)使用循环操作
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCopy01 {
public static void main(String[] args) {
//1、创建文件的输入流,将文件读取到输出流
//2、在完成程序时,应该是读取部分数据,就写入到新的文件里(避免因为内存不够等原因造成异常)使用循环操作
String srcFilepath="D:\\桌面\\test13.png";
String dstFilepath="D:\\Java_code\\LearnPlus\\test13.png";
FileInputStream fileInputStream=null;
FileOutputStream fileOutputStream=null;
try {
fileInputStream=new FileInputStream(srcFilepath);
fileOutputStream=new FileOutputStream(dstFilepath);
//定义一个数组,提高读取效率
byte[] bytes = new byte[1024];
int readLen=0;
while((readLen=fileInputStream.read(bytes))!=-1){
//读取到一个数组后写入新的文件
fileOutputStream.write(bytes,0,readLen);//一定要这样写,否则会写入无关数据
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fileInputStream.close();
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
二、FileReader类的使用
示例代码:
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class FileReader_ {
public static void main(String[] args) {
String filePath="D:\\Java_code\\LearnPlus\\news2.txt";
FileReader fileReader=null;
int data=0;
char[] buf=new char[1024];
int Len=0;
//单个字符读取数据实现
try {
fileReader = new FileReader(filePath);
while((data=fileReader.read())!=-1){
System.out.print((char)data);
}
} catch (IOException e) {
e.printStackTrace();
}
//数组读取实现
try {
fileReader=new FileReader(filePath);
// while((Len=fileReader.read(buf))!=-1){
// for (int i = 0; i < Len; i++) {
// System.out.print(buf[i]);
// }
// }
while ((Len=fileReader.read(buf))!=-1){
System.out.print(new String(buf,0,Len));
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
三、FileWriter
FIleWriter常用方法:
new FIleWriter(File/String):
覆盖模式,相当于流的指针在首端。new FileWriter(File/String,true):
追加模式,相当于流的指针在末端。write(int):
写入单个字符。write(char[ ]):
写入指定数组。write(char[ ],off,len):
写入指定数组的指定部分。write(String):
写入整个字符串。write(String,off,len):
写入字符串的指定部分。
注意事项:FileWriter使用后,必须要把关闭(close)或刷新(flush),否则写入不到指定的文件。
代码示例:
import java.io.FileWriter;
import java.io.IOException;
public class FileWriter_ {
public static void main(String[] args) {
String filePath="D:\\Java_code\\LearnPlus\\news4.txt";
FileWriter fileWriter=null;
try {
fileWriter=new FileWriter(filePath);
fileWriter.write('H');
fileWriter.write("我爱你!");
fileWriter.write(1);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}