Java FileInputStream和FileOutputStream

FileInputStream 是文件输入流,它继承于InputStream。通常,我们使用FileInputStream从某个文件中获得输入字节。
FileOutputStream 是文件输出流,它继承于OutputStream。通常,我们使用FileOutputStream 将数据写入 File 或 FileDescriptor 的输出流。

FileInputStream 函数接口:

FileInputStream(File file)         // 构造函数1:创建“File对象”对应的“文件输入流”
FileInputStream(FileDescriptor fd) // 构造函数2:创建“文件描述符”对应的“文件输入流”
FileInputStream(String path)       // 构造函数3:创建“文件(路径为path)”对应的“文件输入流”

int      available()             // 返回“剩余的可读取的字节数”或者“skip的字节数”
void     close()                 // 关闭“文件输入流”
FileChannel      getChannel()    // 返回“FileChannel”
final FileDescriptor     getFD() // 返回“文件描述符”
int      read()                  // 返回“文件输入流”的下一个字节
int      read(byte[] buffer, int byteOffset, int byteCount) // 读取“文件输入流”的数据并存在到buffer,从byteOffset开始存储,存储长度是byteCount。
long     skip(long byteCount)    // 跳过byteCount个字节

FileOutputStream 函数接口:

FileOutputStream(File file)                   // 构造函数1:创建“File对象”对应的“文件输入流”;默认“追加模式”是false,即“写到输出的流内容”不是以追加的方式添加到文件中。
FileOutputStream(File file, boolean append)   // 构造函数2:创建“File对象”对应的“文件输入流”;指定“追加模式”。
FileOutputStream(FileDescriptor fd)           // 构造函数3:创建“文件描述符”对应的“文件输入流”;默认“追加模式”是false,即“写到输出的流内容”不是以追加的方式添加到文件中。
FileOutputStream(String path)                 // 构造函数4:创建“文件(路径为path)”对应的“文件输入流”;默认“追加模式”是false,即“写到输出的流内容”不是以追加的方式添加到文件中。
FileOutputStream(String path, boolean append) // 构造函数5:创建“文件(路径为path)”对应的“文件输入流”;指定“追加模式”。

void                    close()      // 关闭“输出流”
FileChannel             getChannel() // 返回“FileChannel”
final FileDescriptor    getFD()      // 返回“文件描述符”
void                    write(byte[] buffer, int byteOffset, int byteCount) // 将buffer写入到“文件输出流”中,从buffer的byteOffset开始写,写入长度是byteCount。
void                    write(int oneByte)  // 写入字节oneByte到“文件输出流”中
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileOutputStream;

/** * FileOutputStream * 节点流 * 用于向文件中写出字节的流 * @author Administrator * */

public class FileDemo {
    public static void main(String[] args) throws IOException{
        FileOutputStream fos=new FileOutputStream("fos.dat");

        fos.write(97);

        String str="杭州西湖";
        byte[] buf=str.getBytes("UTF-8");
        fos.write(buf);

        fos.close();
    }
}
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileOutputStream;

/** * FileInputStream * 节点流 * 用于从文件中读取字节的流 * @author Administrator * */

public class FileDemo {
    public static void main(String[] args) throws IOException{
        FileInputStream fis=new FileInputStream("fos.dat");

        int i=fis.read();
        System.out.println(i);//97

        byte[] buf=new byte[12];
        int len=fis.read(buf);
        String str=new String(buf,"UTF-8");
        System.out.println(str);
        fis.close();
    }
}
import java.io.FileInputStream;
import java.io.IOException;
import java.io.FileOutputStream;

/** * 使用文件的字节输入输出流实现文件的复制 * @author Administrator * */

public class FileDemo {
    public static void main(String[] args) throws IOException{
        FileInputStream fis=new FileInputStream("fos.dat");
        FileOutputStream fos= new FileOutputStream("copy.dat");
        byte[] buf = new byte[24];
        int len = -1;
        while((len=fis.read(buf))!=-1){
            fos.write(buf,0,len);
        }
        System.out.println("复制完毕");
        fis.close();
        fos.close();
    }
}

你可能感兴趣的:(java)