[特殊字符] Java 文件 IO 入门教程

📝 Java 文件 IO 入门教程

哎呀,Java 文件 IO 啊,这玩意儿听起来高大上,其实就是让程序跟文件打交道 —— 读读写写啥的。咱今天就用大白话唠明白这事儿。😉

想象一下,你电脑里的文件就像一个个小本本📒。Java 程序呢,就像个小秘书👩💼。文件 IO 就是这个小秘书去拿小本本(读文件)、写小本本(写文件)的过程。

File对象

首先,你得告诉小秘书小本本在哪儿吧?这就需要一个 “地址”,在 Java 里叫 “File 对象”。就像你告诉秘书:“去我桌子上那个《工作计划》笔记本” 一样。📍


// 告诉程序文件在哪儿 File file = new File("C:/我的小本本.txt");

字符流

接下来是读文件。最简单的办法是用 “BufferedReader”,这玩意儿就像给小秘书配了个放大镜🔍,读起来又快又清楚。


try {   // 给小秘书配个放大镜   BufferedReader br = new BufferedReader(new FileReader(file));   String line;   // 一行一行读,直到读完   while ((line = br.readLine()) != null) {       System.out.println(line); // 打印读到的内容   }   br.close(); // 用完了记得把小本本合上 } catch (IOException e) {   e.printStackTrace(); // 出问题了就喊一声 }

然后是写文件,用 “BufferedWriter” 就行,这就像给小秘书一支好写的笔✍️。


try {   // 给小秘书一支笔   BufferedWriter bw = new BufferedWriter(new FileWriter(file));   bw.write("今天天气真好"); // 写点东西   bw.newLine(); // 换行,就像你敲回车   bw.write("适合学Java");   bw.close(); // 写完也得合上 } catch (IOException e) {   e.printStackTrace(); }

是不是挺简单?就像平时拿本子写字、看字一样。不过有几点要注意:⚠️

  1. 操作完文件一定要 “关闭”,就像看完书要合上一样,不然电脑会累着💻。
  1. 这些操作可能会出岔子(比如文件找不到),所以得用 try...catch 包起来,出问题了好处理🔧。
  1. 现在 Java 有更简单的写法,不用手动关文件,就像用自动关门的本子🚪:

// 自动关门的写法,推荐用这个 try (BufferedReader br = new BufferedReader(new FileReader(file))) {   String line;   while ((line = br.readLine()) != null) {       System.out.println(line);   } } catch (IOException e) {   e.printStackTrace(); }

字节流

除了上面说的字符流,Java 里还有字节流,它就像用小勺子🥄一点点处理文件里的内容,不管是文本还是图片、音频这些二进制文件都能搞定。比如 FileInputStream 和 FileOutputStream,前者是读字节,后者是写字节。


// 用字节流读文件 try (FileInputStream fis = new FileInputStream("C:/图片.jpg")) {   byte[] buffer = new byte[1024]; // 准备个小桶接字节   int len;   while ((len = fis.read(buffer)) != -1) {       // 处理读到的字节,这里只是举个例子   } } catch (IOException e) {   e.printStackTrace(); } ​ // 用字节流写文件 try (FileOutputStream fos = new FileOutputStream("C:/复制的图片.jpg")) {   byte[] data = "一些字节数据".getBytes(); // 把内容转成字节数组   fos.write(data); // 把字节写到文件里 } catch (IOException e) {   e.printStackTrace(); }

还有转换流,它就像个翻译官🌐,能在字节流和字符流之间转换。当你用字节流读文本,想按字符处理时,InputStreamReader 就派上用场了;要是想把字符流的内容用字节流写出去,OutputStreamWriter 就很管用。


// 字节流转字符流读文件 try (InputStreamReader isr = new InputStreamReader(new FileInputStream("C:/文档.txt"), "UTF-8")) {   int c;   while ((c = isr.read()) != -1) {       System.out.print((char) c); // 把读到的字节转成字符输出   } } catch (IOException e) {   e.printStackTrace(); }

还有一种叫 DataInputStream 和 DataOutputStream 的流,它们就像带了标签机🏷️,能按特定的数据类型读写字节,比如读个整数、写个浮点数啥的,不用自己手动转换格式,很方便。


// 用DataOutputStream写各种类型数据 try (DataOutputStream dos = new DataOutputStream(new FileOutputStream("C:/数据.dat"))) {   dos.writeInt(123); // 写个整数   dos.writeDouble(3.14); // 写个小数   dos.writeUTF("Hello"); // 写个字符串 } catch (IOException e) {   e.printStackTrace(); } ​ // 用DataInputStream读对应类型数据 try (DataInputStream dis = new DataInputStream(new FileInputStream("C:/数据.dat"))) {   int num = dis.readInt();   double d = dis.readDouble();   String str = dis.readUTF();   System.out.println(num + " " + d + " " + str); } catch (IOException e) {   e.printStackTrace(); }

刚开始学不用记太多复杂的,先把这几种最基本的读和写搞明白。多试试读个 txt 文件,写点内容进去,慢慢就熟啦。就像刚开始学用记事本一样,练多了自然就顺手了~💪

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值