尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
File、IO流
File用于操作文件IO流用于读写数据1.File文件对象常用方法package com.popo.filedemo; import java.io.File; import java.io.IOException; public class FileDemo1 { public static void main(String[] args) throws Exception { // 文件对象常用方法 File f1 new File(D:\\test.txt); System.out.println(f1.exists()); System.out.println(f1.isFile()); System.out.println(f1.isDirectory()); System.out.println(f1.getName()); System.out.println(f1.length()); // 字节个数 System.out.println(f1.lastModified()); System.out.println(f1.getPath()); // 相对路径以javase2026为根目录 System.out.println(f1.getAbsolutePath()); // 绝对路径 File f2 new File(D:\\test_dir); System.out.println(f2.createNewFile()); // 创建文件返回布尔值 System.out.println(f2.mkdir()); // 创建一级文件夹 System.out.println(f2.mkdirs()); // 创建多级文件夹 System.out.println(f2.delete()); // 删除文件或空文件夹 // 遍历文件夹 File f3 new File(D:\\); String[] files f3.list(); // 保存目录中的一级文件和文件夹名称到数组中 if (files ! null) { for (String file : files) { System.out.println(file); } } File[] filesList f3.listFiles(); // 保存目录中的一级文件和文件夹对象到数组中 if (filesList ! null) { for (File file : filesList) { System.out.println(file.getName()); } } } }搜索指定文件夹下的文件package com.popo.filedemo; import java.io.File; public class FileDemo2 { public static void main(String[] args) { String path D:\\Common_software; String fileName QQ.exe; File dir new File(path); searchFile(dir, fileName); } public static void searchFile(File dir, String fileName) { // 搜索指定文件夹下的文件 File[] files dir.listFiles(); if (files ! null files.length 0) { for (File file : files) { if (file.isDirectory()) { searchFile(file, fileName); } else { if (file.getName().contains(fileName)) { System.out.println(找到文件 file.getAbsolutePath()); } } } } } }字符串的编码和解码package com.popo.filedemo; import java.io.UnsupportedEncodingException; import java.util.Arrays; public class FileDemo3 { public static void main(String[] args) throws UnsupportedEncodingException { // 字符串的编码和解码 String str Hello, 世界; byte[] bytes str.getBytes(); // 字符串编码 System.out.println(bytes.length); // 7 2 * 3 System.out.println(Arrays.toString(bytes)); String newStr new String(bytes); // 字符串解码 System.out.println(newStr); String str2 Hello, 世界; byte[] bytes2 str2.getBytes(GBK); // 字符串编码 System.out.println(bytes2.length); // 7 2 * 2 System.out.println(Arrays.toString(bytes2)); String newStr2 new String(bytes2, GBK); // 字符串解码 System.out.println(newStr2); } }2.IO流IO流分为字节流和字符流字节流适合做数据的转移因为中英文混在一起按字节读取会出现乱码字符流适合读取文本字节流字节输入流package com.popo.iodemo; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; public class FileInputStreamDemo1 { public static void main(String[] args) throws Exception { // 创建字节输入流对象 InputStream is new FileInputStream(pro_day03_file_io\\src\\com\\popo\\iodemo\\test1.txt); // 1.逐个字节读出 // int b is.read(); // while (b ! -1) { // System.out.print((char) b); // b is.read(); // } // 2.字节数组读出 byte[] bytes new byte[3]; int len; while ((len is.read(bytes)) ! -1) { System.out.print(new String(bytes, 0, len)); // aaa666bbc } // 3.读出全部字节 // byte[] allBytes is.readAllBytes(); // System.out.println(new String(allBytes)); } }字节输出流package com.popo.iodemo; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; public class FileOutputStreamDemo2 { public static void main(String[] args) throws Exception { // 创建字节输出流对象追加内容 OutputStream os new FileOutputStream(pro_day03_file_io/src/com/popo/iodemo/test2.txt, true); // 1.逐个字节写入 os.write(97); os.write(a); os.write(\r\n.getBytes()); // 2.字节数组写入 byte[] bytes 我爱Java666.getBytes(); os.write(bytes); os.write(\r\n.getBytes()); // 3.字节数组的一部分写入 os.write(bytes, 0, 3); os.write(\r\n.getBytes()); // 4.关闭流 os.close(); } }文件复制package com.popo.iodemo; import java.io.*; public class CopyDemo3 { public static void main(String[] args) { // 文件复制 copyFile(pro_day03_file_io/src/com/popo/iodemo/test2.txt, pro_day03_file_io/src/com/popo/iodemo/test3.txt); } public static void copyFile(String srcPath, String destPath) { // 使用try-with-resources语句自动关闭资源 try (InputStream is new FileInputStream(srcPath); OutputStream os new FileOutputStream(destPath);) { byte[] bytes new byte[1024]; int len; while ((len is.read(bytes)) ! -1) { os.write(bytes, 0, len); } } catch (IOException e) { e.printStackTrace(); } } }字符流文件字符输入流package com.popo.iodemo; import java.io.FileReader; import java.io.Reader; public class FileReaderDemo4 { public static void main(String[] args) { // 文件字符输入流 try (Reader fr new FileReader(pro_day03_file_io/src/com/popo/iodemo/test4.txt)) { int ch fr.read(); System.out.println((char)ch); char[] buffer new char[3]; int len; while ((len fr.read(buffer)) ! -1) { System.out.print(new String(buffer, 0, len)); } }catch (Exception e) { e.printStackTrace(); } } }文件字符输出流package com.popo.iodemo; import java.io.FileWriter; public class FileWriterDemo5 { public static void main(String[] args) { // 文件字符输出流 try (FileWriter fw new FileWriter(pro_day03_file_io/src/com/popo/iodemo/test5.txt, true)) { // 1.写字符串 fw.write(hello 世界\r\n); // 2.写字符串的一部分 fw.write(hello 世界, 6, 2); // 3.写一个字符 fw.write(a); // 4.写一个字符数组 fw.write(hello 世界.toCharArray()); // 5.写字符数组的一部分 fw.write(hello 世界.toCharArray(), 0, 2); // 6.刷新缓冲区关闭流时会自动刷新 fw.flush(); }catch (Exception e) { e.printStackTrace(); } } }缓冲字节流package com.popo.iodemo; import java.io.*; public class BufferedInputAndOutputStreamDemo6 { public static void main(String[] args) { // 文件复制 copyFile(pro_day03_file_io/src/com/popo/iodemo/test2.txt, pro_day03_file_io/src/com/popo/iodemo/test3.txt); } public static void copyFile(String srcPath, String destPath) { // 把低级的字节输入输出流包装成缓冲字节输入输出流默认的缓冲区大小为8KB // 先用底层流读出8KB的数据再从缓冲区逐次读出1KB try (InputStream is new FileInputStream(srcPath); BufferedInputStream bis new BufferedInputStream(is); OutputStream os new FileOutputStream(destPath); BufferedOutputStream bos new BufferedOutputStream(os)) { byte[] bytes new byte[1024]; int len; while ((len bis.read(bytes)) ! -1) { bos.write(bytes, 0, len); } } catch (IOException e) { e.printStackTrace(); } } }缓冲字符流缓冲字符输入流package com.popo.iodemo; import java.io.BufferedReader; import java.io.FileReader; import java.io.Reader; public class BufferedReaderDemo7 { public static void main(String[] args) { // 把低级的字符输入流包装成高级的缓冲字符输入流缓冲区大小为8KB try (Reader fr new FileReader(pro_day03_file_io/src/com/popo/iodemo/test7.txt); BufferedReader br new BufferedReader(fr); ) { String line; // 特有方法按行读取字符串 while ((line br.readLine()) ! null) { System.out.println(line); } }catch (Exception e) { e.printStackTrace(); } } }缓冲字符输出流package com.popo.iodemo; import java.io.BufferedWriter; import java.io.FileWriter; public class BufferedWriterDemo8 { public static void main(String[] args) { // 把低级的字符输出流包装成高级的缓冲字符输出流缓冲区大小为8KB try (FileWriter fw new FileWriter(pro_day03_file_io/src/com/popo/iodemo/test5.txt, true); BufferedWriter bw new BufferedWriter(fw); ) { bw.write(hello 世界); // 特有方法写入一个行分隔符 bw.newLine(); bw.write(hello 世界, 6, 2); bw.write(a); bw.write(hello 世界.toCharArray()); bw.write(hello 世界.toCharArray(), 0, 2); }catch (Exception e) { e.printStackTrace(); } } }字符输入转换流package com.popo.iodemo; import java.io.*; public class InputStreamReaderDemo9 { public static void main(String[] args) { // 解决文件编码问题 // 字符输入转换流把字节输入流转换为字符输入流按原始字节读取转换为指定字符编码的字符流 try (InputStream fis new FileInputStream(pro_day03_file_io/src/com/popo/iodemo/test9.txt); InputStreamReader isr new InputStreamReader(fis, GBK); BufferedReader br new BufferedReader(isr); ) { String line; // 特有方法按行读取字符串 while ((line br.readLine()) ! null) { System.out.println(line); } }catch (Exception e) { e.printStackTrace(); } } }打印流package com.popo.iodemo; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.PrintStream; import java.io.PrintWriter; public class PrintStreamAndPrintWriterDemo10 { public static void main(String[] args) { // 打印流写什么就打印什么97不会变成a try (PrintStream ps new PrintStream(pro_day03_file_io/src/com/popo/iodemo/ps10.txt); PrintWriter pw new PrintWriter(pro_day03_file_io/src/com/popo/iodemo/pw10.txt); ) { ps.println(97); ps.println(true); ps.println(你好); }catch (Exception e) { e.printStackTrace(); } } }数据流package com.popo.iodemo; import java.io.*; public class DataOutputStreamAndDataInputStreamDemo11 { public static void main(String[] args) { // 用于通信 // 数据输出流和数据输入流写入和读取数据类型 try (DataOutputStream dos new DataOutputStream(new FileOutputStream(pro_day03_file_io/src/com/popo/iodemo/test11.txt)); DataInputStream dis new DataInputStream(new FileInputStream(pro_day03_file_io/src/com/popo/iodemo/test11.txt)) ) { dos.writeInt(100); dos.writeDouble(12.34); dos.writeUTF(hello); // 读出和写入的顺序、类型必须一致 System.out.println(dis.readInt()); System.out.println(dis.readDouble()); System.out.println(dis.readUTF()); }catch (Exception e) { e.printStackTrace(); } } }IO框架将jar包复制到lib目录下后右键将其“add to library”FileUtils和IOUtils的常用方法package com.popo.iodemo; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import java.io.*; public class CommonsIODemo12 { public static void main(String[] args) { try { // FileUtils的常用方法 // 1.复制文件 FileUtils.copyFile(new File(pro_day03_file_io/src/com/popo/iodemo/ci12.txt), new File(pro_day03_file_io/src/com/popo/iodemo/co12.txt)); // 2.复制文件夹 FileUtils.copyDirectory(new File(pro_day03_file_io/src/com/popo/iodemo/ci12), new File(pro_day03_file_io/src/com/popo/iodemo/co12)); // 3.删除文件夹 FileUtils.deleteDirectory(new File(pro_day03_file_io/src/com/popo/iodemo/co12)); // 4.读取文件到字符串 String content FileUtils.readFileToString(new File(pro_day03_file_io/src/com/popo/iodemo/ci12.txt), utf-8); System.out.println(content); // 5.字符串写入文件 FileUtils.writeStringToFile(new File(pro_day03_file_io/src/com/popo/iodemo/ci12.txt), content, utf-8, true); // IOUtils的常用方法 // 1.复制文件 IOUtils.copy(new FileInputStream(pro_day03_file_io/src/com/popo/iodemo/ci12.txt), new FileOutputStream(pro_day03_file_io/src/com/popo/iodemo/co12.txt)); IOUtils.copy(new FileReader(pro_day03_file_io/src/com/popo/iodemo/ci12.txt), new FileWriter(pro_day03_file_io/src/com/popo/iodemo/co12.txt)); // 2.写数据 IOUtils.write(content, new FileOutputStream(pro_day03_file_io/src/com/popo/iodemo/co12.txt), utf-8); } catch (IOException e) { e.printStackTrace(); } } }
RELATED

相关推荐

用 CLion 定位基于 RK3568 嵌入式 Linux 5.10.160 Core Dump 崩溃问题

用 CLion 定位基于 RK3568 嵌入式 Linux 5.10.160 Core Dump 崩溃问题

嵌入式 Linux 上调试偶发崩溃是件头疼事:现场复现成本高、串口打印有限、gdb 直接 attach 又会打断业务。把 core dump 落盘、拿回开发机用 CLion 慢慢分析,是性价比最高的做法。本文以飞凌 OK3568 开发板(RK3568, Linux 5.10.160, Buildroot)为例,走完"板上开启 cor…

📅 2026/11/5 9:07:07
平均响应两小时,对方却觉得三天没人理:企业微信聊天记录导出的效率分析攻略

平均响应两小时,对方却觉得三天没人理:企业微信聊天记录导出的效率分析攻略

月度复盘会上摆了两张纸。 左边是一张统计表,上面写着平均首次响应时长两小时十四分,比上个月快了十一分钟,看起来是件好事。右边是三段从聊天记录里摘出来的原话,最短的一段只有八个字:三天了,没人回我。 …

📅 2026/11/5 9:07:07
【工程师选酒避坑指南】一桌家常菜,配什么酒

【工程师选酒避坑指南】一桌家常菜,配什么酒

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/11/5 9:02:05
MORE NEWS

更多资讯

📰

附录 A · 工具速查表

附录导读本附录是混淆工具和反混淆工具的快速索引,按用途分类,相当于一本"工具字典":第 1 节:混淆工具——把代码变难分析的"加固方"武器;第 2 节:反混淆工具——把混淆代码还原回去的…

📰

PDO属性设置全解析:高效数据库操作秘诀

PDO::关于PHP的PDO这种技术, 它有一份参考手册。PDO:: — 设置属性(PHP 5 > 5.1.0, PECL pdo > 0.1.0)说明语法bool PDO::setAttribute ( int $attribute , mixed $value )我们需要把数据库句柄的属性给设置好。在下文之中, 会列举出一些可以被大家所用到的通用的属性内容…

📰

GMSK调制与基于Laurent分解的GMSK解调FPGA实现,第一篇(GMSK调制篇)

目录 一、GMSK简介 二、GMSK调制原理与步骤 1、GMSK调制原理 2、GMSK调制步骤 三、GMSK调制MATLAB仿真验证 1、GMSK调制MATLAB代码 2、GMSK调制MATLAB仿真 四、GMSK调制FPGA实现 1、GMSK调制FPGA Verilog代码 2、GMSK调制FPGA 仿真 五、FPGA和MATLAB联合仿真 1、…

📰

JAVA——抽象类、内部类和接口

一、抽象类如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类可以包含抽象方法与普通方法和属性。在Java中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽…

📰

二叉树的学习

二叉树 1.树形概念 想了解二叉树的概念我们得先知道数的概念 树是⼀种⾮线性的数据结构,它是由n(n>0)个有限结点组成⼀个具有层次关系的集合。把它叫做树是因为它看起来像⼀棵倒挂的树,也就是说它是根朝上,⽽叶朝下…

📰

DouK-Downloader 实操指南:从 Cookie 配置到 Docker 部署的抖音/TikTok 批量下载与数据采集

DouK-Downloader 实操指南:从 Cookie 配置到 Docker 部署的抖音/TikTok 批量下载与数据采集 【免费下载链接】TikTokDownloader 抖音 / TikTok 平台作品下载/数据采集工具 项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader 动手前&#x…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬