文件流IO

本文详细介绍Java中文件的创建、读写、删除操作及流的概念。包括字节流与字符流的区别,输入输出流的使用,如FileInputStream、FileOutputStream、FileReader、FileWriter等。同时,展示了如何通过流来读写集合数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
文件:
创建文档:
File path2=new File(“D:/aqiao/a”);
path2.mkdirs();
文档下创建文件:
File file=new File(“D:/aqiao/a/1.txt”);

    try {
        file.createNewFile();
    }catch (IOException e){
        e.printStackTrace();
    }

删除:
if (file.delete()){
System.out.println(“删除成功”);
}else {
System.out.println(“删除失败”);
}
流:
概念:流是指一连串流动的字符,是以先进先出方式发
送信息的通道

流的分类:
1、流向区分:
输出流:OutputStream和Writer作为基类;
输入流:InputStream和Reader作为基类;
2、处理数据单元划分:
字节流:字节输入流InputStream和字节输出流OutputStream
字符流:字符输入流Reader作为基类和字符输出流Writer作为基类;

FileInputStream读文本文件:
public void get2(){
FileInputStream file=null;
try {
file=new FileInputStream(“D:/aqiao/a/1.txt”);
byte[]b=new byte[500];
int len=-1;
String string="";
while ((len=file.read(b))!=-1){
string+=new String(b,0,len);
}
System.out.println(string);
} catch (Exception e) {
e.printStackTrace();
}finally {
if (file!=null){
try {
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

FileOutputStream 写文本文件
public void get3() {
FileOutputStream outputStream = null;
try {
//true表示追加,false表示覆盖
outputStream = new FileOutputStream(“D:/aqiao/a/1.txt”, true);
String words = “你好!!”;
byte[] b = words.getBytes();
System.out.println(“字节大小:” + b.length);
outputStream.write(b);
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println(“finally”);
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

FileReader读取文件:
public void get4() {
Reader reader=null;
BufferedReader bfReader=null;
try {
reader = new FileReader(“D:/aqiao/a/1.txt”);
bfReader=new BufferedReader(reader);
StringBuffer sbf=new StringBuffer();
String line=null,s=new String();
while ((line=bfReader.readLine())!=null){
// System.out.println(line);
// sbf.append(line+"\n");
s+=line;
}
System.out.println(s);
// System.out.println(sbf.toString());
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
bfReader.close();
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}

FileWriter写文件:
public void get5() {
Writer writer=null;
BufferedWriter bfwriter=null;
try {
writer = new FileWriter(“D:/aqiao/a/1.txt”);
bfwriter=new BufferedWriter(writer);
String s=“加油”;
bfwriter.write(s);
// System.out.println(sbf.toString());
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
bfwriter.flush();//清空缓存
bfwriter.close();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}

通过流读写集合:
写入集合:
public void get7(){
List al=new ArrayList<>();
for (int a=0;a<10;a++){
al.add(“hello”+a);
}
BufferedWriter bw=null;

    try {
        bw=new BufferedWriter(new FileWriter("D:/aq.txt"));
        for (String s:al){
            bw.write(s);
            bw.newLine();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }finally {
        try {
            bw.flush();
            bw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

读取集合:
public void get8(){
BufferedReader br=null;

    try {
        br=new BufferedReader(new FileReader("D:/aq.txt"));
        List<String> al=new ArrayList<>();
        String line;
        while ((line=br.readLine())!=null){
            al.add(line);
        }
        for (String s:al){
            System.out.println(s);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }finally {
        try {
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值