IO
字节流
FileInputStream
FileInputSteam
:用于读取诸如图像数据的原始字节流
FileInputStream常用方法:
FileInputStream(File file)
//创建文件输入流read()
//从该输入流读取一个字节的数据read(byte[] b)
//从该输入流读取最多b.length
个字节的数据为字节数组。read(byte[] b, int off, int len)
//从该输入流读取最多len
字节的数据为字节数组。
读文件
mport java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class FileInput {
public static void main(String[] args) throws IOException {
//utf-8进行存储,一个英文字母占一个字节,一个中文占3个字节
//如果文本文件,那么就不要使用字节流读取了,建议使用字符流
//read()读取一个字节,返回int类型,都是正数
//方式一:
Input01();
//方式二
Input02();
}
public static void Input01() throws IOException {
//利用字节流读取文件
File file = new File("E:\\test.txt");
FileInputStream fi = new FileInputStream(file);
int read = fi.read();
while(read!=-1){
System.out.print((char)read);
read=fi.read();
}
fi.close();
}
public static void Input02() throws IOException {
FileInputStream fi=new FileInputStream(new File("E:\\test.txt"));
byte[] b=new byte[8];
int len=fi.read(b);
while(len!=-1){
for(int i=0;i<len;i++){
System.out.print((char) b[i]);
}
len=fi.read(b);
}
fi.close();
}
}
FileOutputStream
FileOutputStream
用于写入诸如图像数据的原始字节流。
FileOutputStream常用方法:
FileOutputStream(File file)
//创建文件输出流以写入由指定的File
对象表示的文件。FileOutputStream(File file,boolean append)
//创建文件输出流以覆盖(false)或者追加(true)的方式写入。write(int b)
//将指定的字节写入此文件。write(byte[] b)
//将b.lenth
个字节从指定数组写入此文件中。
写文件
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
public class FileOutput {
public static void main(String[] args) throws IOException {
FileOutputStream fo=new FileOutputStream(new File("E:\\demo.txt"));
String str="hello java!";//写入的内容
byte[] b = str.getBytes(StandardCharsets.UTF_8);//按utf-8编码格式转成字节数组
fo.write(b);//写入操作
fo.close();//关闭流
}
}
文件拷贝
import java.io.*;
public class FileCopy {
public static void main(String[] args) throws IOException {
File f1 = new File("E:\\test.txt");
File f2 = new File("E:\\demo.txt");
FileInputStream fi = new FileInputStream(f1);
FileOutputStream fo = new FileOutputStream(f2);
byte[] b = new byte[8];
int len = fi.read(b);
while (len != -1) {
fo.write(b, 0, len);
len = fi.read(b);