- 输入流
FileInputStream类创建指向文件的输入流;
FileInputStream(String name);
FileInputStream(File file);
以上参数name和file指定的文件称为输入流的源。
- 建立一个文件输入流:
try{
FileInputStream in=new FileInputStream("hello.txt");
//创建指向文件hello.txt的输入流
}
catch(IOException e){
System.out.println(file read error:"+e);
}
- 用输入流读取字节
int read();//从源中读取《《单个》》字节的数据。未读出字节返回-1。
int read(byte b[]);//从源中读取b.length个字节暂存到字节数组b中。
int read(byte b[],int off,int len);//
String s=new String(a,o,n) :数组a从下标0开始前进n个下标的那一段数组变成字符串s;
3.使用文件字节流读取文件
import java.io.*;
public class Test1{
public static void main(String args[]) throws IOException{
int n=0;
byte[] b=new byte[100];
File file=new File("路径","123.txt");
try {
FileInputStream in=new FileInputStream(file);
while((n=in.read(b,0,100))!=-1) {
String s=new String(b,0,n);
System.out.println(s);
}
in.close();//关闭流
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
- 输出流
FileOutputStream类创建指向文件的输出流;
FileOutoutStream(String name);
FileOutputStream(File file);
FileOutoutStream(String name,boolean append);
append 为true输出流不会刷新指向的文件。
创建一个输出流
try{
FileOutputStream out=new FileOutputStream("123.txt");
}
catch(IOException e){
System.out.println(e);
}
- 使用输出流输出字节
void write(int n)//输出流调用该方法向目的地写入单个字节
void write(byte b[])写入一个字节数组
void write(byte b[],int off,int len)
void close()//关闭输入流
向一个文件写入”今天星期六"
import java.io.*;
public class Test1{
public static void main(String args[]) throws IOException {
byte b[]="今天星期六".getBytes();
byte a[]="nowday is sunday".getBytes();
File file=new File("路径","123.txt");
if(!file.exists()) {
file.createNewFile();
}
FileOutputStream out=new FileOutputStream(file,true);
out.write(a);
out.close();
}
}