java file I/O流
阅读原文时间:2023年08月09日阅读:2

一.File的简介:(java.io包)

生活中的文件

(1)文件的作用:持久化(瞬时状态的对立面状态)

(1)文件的定义:一堆数据的集合

(2)文件存储的位置:磁盘,硬盘,软盘,U盘等等

计算机中的文件File

(1)file的定义:java.io中的File类

(2)创建File:new File();创建文件实例

(3)File属性:文件的位置,文件的名称,文件的内容

File文件的增删查

(1)添加文件

public static void main(String[] args) throws IOException {
File file = new File("写上文件地址和文件名这一行在查询和删除中都要用");
file.createNewFile(); (2)查询文件 file.getname()获取文件名 file.getAbsolutPath()获取文件地址 (3)删除文件 file.delet()

生活中的流

(1)人流。车流。类似于人或者车的集合

计算机中流

(1)定义数据的集合(先进后出)

(2)流传递的方向:从原数据源传递到目标数据源

流的指向

(1)读入(从文件中读入到程序(idea)中)

(2)写出(从程序(idea)中写出到文件中)

流的分类*

(1)按流向分:输出流OutputStream和Write

输入流InputStream和reader

(2)按照处理单元分

字节流:OutputStream,InputStream

字符流:Write,reader

二.字节流

FileInputStream字节输入流实现读取

FileInputStream字节输入流实现数组读取

FileInputStream字节输入流FileOutputStream字节输出流实现复制

(1)FileInputStream字节输入流实现读取

psvm{ FileInputStream fis=null; fis=new FileInPutStream; int arraylength=0;

**while((arraylength=fis.read)!=-1){
**

sout((char)arraylength);}}

(2)FileInputStream字节输入流实现数组读取

**psvm{
FileInputStream fis=null;
fis=new FileInPutStream;
int arraylength=0;
byte[]bytes=new byte[1024]
while((arraylength=fis.read(bytes))!=-1){
for(int i=0;i<arrayleng;i++){
sout((char)byte[i])
}
} }
**

(3)FileInputStream字节输入流FileOutputStream字节输出流实现复制

psvm{ FileInputStream fis=null; fis=new FileInPutStream; FileOutputStream fos=null; fos=new **FileOutputStream
**

int arraylength=0; byte[]bytes=new byte[1024] while((arraylength=fis.read(bytes))!=-1){ fos.write(bytes,0,arraylength);} }

三.字符流

字节流读取时中文乱码问题

FileReader字符流实现读取

FileWriter字符流实现写出

  1. 字节流有乱码问题,所以用字符流(处理中文不可以用字节流)

  2. 2.FileReader字符流实现读取

    如果文件中出现中文需要用字符流输入字符串的输出

FileReader fr=null; fr=new FileReader; int arraylength=0; char[]chars=new char[1024]; while((arraylength**=fr.reader(chars))!=-1){ for(int i=0;i

FileWrite fw=null;

fw=new FileWrite(" ");

fw.write(" ")

四.缓冲流

字符流FileReader加BufferedReader实现读取

字符流FileWriter加BufferedWriter实现写出

(1)字符流FileReader加BufferedReader实现读取

FileReader fr=null;

BufferedReader be=null;

fr=new FileReader()

br=new BufferedReader(fr);

String data=null;

while( (data=br.readLine())!=null;){

Sout(data)

}

(2)字符流FileWriter加BufferedWriter实现写出

FileWrite fw=null;

BufferedWrite bw=null;

fw=new FileWrite();

bw=new BufferedWrite(fw);

bw .write( "");

五.复制

1.字符流实现复制FileReader fr=null;

BufferedReader br=null;

FileWrite fw=null;

BufferedWrite bw=null

fr=new FileReader("");

br=new BufferedReader(fr);

fw=new FileWrite("");

bw=new Bufferedwrite;

String line=null;

StringBuffer buffer=new StringBuffer();

while((line=br.readLine())!=null){

buffer.append(line);

}bw.write(buffer.toString())

2.复制二进制文件(图片,视频)建议优先使用字节流加DataInputStream/DataOputStream的流(稳定防数据缺失)

FileInputStream fis=num;

DataInputStream dis=num;

FileOutputStream fos=num;

DaraOutputStream dos=num;

fis=new FileInputStream(“”);

dis=new DataInputStream(fis);

fos=new FileOutputStream(“”);

dos=new DataOutputStream(fos);

byte []bytes=new byte[1024];

int arrayleng=0;

while((arrayleng=dis.read(bytes)!=-1){

dos.write(bytes,0,arrayleng)

}