1.简单文件写入数据操作
package com.feng;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class FileDemo1 {
public static void main(String[] args) throws IOException {
FileOutputStream fos=new FileOutputStream("b.txt");
byte[] bytes= {97,98,99,100,101};
fos.write(bytes);
fos.close();
}
}
2.一个字节一个字节的读取(速度慢)
package com.feng;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class picure {
public static void main(String[] args) throws IOException {
FileInputStream fis=new FileInputStream("C:\\Users\\Zhanglinfeng\\Desktop\\ma.png");
FileOutputStream fos=new FileOutputStream("C:\\Users\\Zhanglinfeng\\Desktop\\ma2.png");
int b=0;
while ((b=fis.read())!=-1) {
fos.write(b);
}
fos.close();
fis.close();
System.out.println("图片拷贝成功!");
}
}
3.一次性复制文件操作(当心内存溢出)
package com.feng;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class picture2 {
public static void main(String[] args) throws IOException {
File file=new File("C:\\\\Users\\\\Zhanglinfeng\\\\Desktop\\\\ma.png");
File file2=new File("C:\\\\Users\\\\Zhanglinfeng\\\\Desktop\\\\ma-副本.png");
FileInputStream fis=new FileInputStream(file);
int size=fis.available();
System.out.println("size="+size);
byte[] bytes=new byte[size];
fis.read(bytes);
FileOutputStream fos=new FileOutputStream(file2);
fos.write(bytes);
fis.close();
fos.close();
System.out.println("图片拷贝成功");
}
}
4.最优拷贝(自定义读取长度)
package com.feng;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class picture3 {
public static void main(String[] args) throws IOException {
File file = new File("C:\\\\Users\\\\Zhanglinfeng\\\\Desktop\\\\ma.png");
File file2 = new File("C:\\\\Users\\\\Zhanglinfeng\\\\Desktop\\\\ma-副本.png");
FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(file2);
byte[] bytes=new byte[1024*8];
int len=0;
int count=0;
while ((len=fis.read(bytes))!=-1) {
fos.write(bytes, 0, len);
count++;
}
fis.close();
fos.close();
System.out.println("文件读取次数"+count);
System.out.println("图片拷贝成功!");
}
}