当前位置: 首页 > wzjs >正文

奢做品二手 哪个网站好北京网站设计 培训学校

奢做品二手 哪个网站好,北京网站设计 培训学校,网络营销学什么内容,wordpress live本文基于 Java 原生 IO 流,从最基础的字节流到字符流,再到实战案例(如文件夹拷贝、文件加密等)进行逐步深入讲解。适合有一定 Java 基础、希望掌握文件读写操作的。 一、前言 Java IO(输入输出)是我们日常…

本文基于 Java 原生 IO 流,从最基础的字节流到字符流,再到实战案例(如文件夹拷贝、文件加密等)进行逐步深入讲解。适合有一定 Java 基础、希望掌握文件读写操作的。


一、前言

Java IO(输入输出)是我们日常开发中必不可少的一部分。无论是读写文件、传输数据、处理日志,IO 都是底层支持。在这篇博客中,我们将基于实际代码案例,从 FileOutputStreamFileInputStreamFileReaderFileWriter 全面解析 Java IO 的用法与底层原理,并完成以下内容:

  • 文件写入(字节/字符流)

  • 文件读取

  • 文件拷贝(大文件/小文件/文件夹)

  • 编码解码与乱码问题

  • 文件加密与解密

在对文件进行读写操作时,必须要开启一个流,这个流是以你的程序角度的,比如你要向文件写入数据,那么就可以开输出流(OutputStream),从文件读取数据,就可以开启输入流(InputStream)。

 


二、字节输出流:FileOutputStream

1. 写一个字节:write(int b)

FileOutputStream fos = new FileOutputStream("a.txt");
fos.write('a');
fos.close();

写入单个字节(ASCII 字符)。

2. 写入字节数组:write(byte[] b)

byte[] bytes = {97, 98, 99};
fos.write(bytes);

3. 写入部分字节:write(byte[] b, int off, int len)

fos.write(bytes, 1, 2); // 从索引1开始写两个字节(b和c)

注意事项

  • 默认覆盖已有内容。

  • 可通过构造函数加参数启用追加模式

new FileOutputStream("a.txt", true);

三、字节输入流:FileInputStream

1. 读取一个字节:read()

FileInputStream fis = new FileInputStream("a.txt");
int b = fis.read();
System.out.println(b);

2. 循环读取所有字节

int b;
while ((b = fis.read()) != -1) {System.out.print((char) b);
}

3. 读取字节数组:read(byte[] buffer)

byte[] buffer = new byte[2];
int len = fis.read(buffer);
System.out.println(new String(buffer, 0, len));

四、文件拷贝实战

 小文件拷贝

int b;
while ((b = fis.read()) != -1) {fos.write(b);
}

大文件拷贝(使用缓冲数组)

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

try-with-resources 简化关闭资源

try(FileInputStream fis = new FileInputStream("a.txt");FileOutputStream fos = new FileOutputStream("b.txt")) {...
}

五、字符集编码与乱码问题

字符集基础

编码类型特点
ASCII单字节英文编码
GBK双字节中文编码
UTF-8可变长度,英文1字节,中文3字节
UnicodeJava默认字符集,多数使用UTF-16

 

为什么会乱码?

  • 字节读取不完整一个中文字符

  • 编码与解码方式不一致

编码与解码示例

String str = "你好世界";
byte[] gbk = str.getBytes("GBK");
byte[] utf8 = str.getBytes("UTF-8");
System.out.println(new String(gbk, "GBK"));   // 正确
System.out.println(new String(utf8, "UTF-8")); // 正确

六、字符流读写(FileReader / FileWriter)

字符流其实是在字节流的基础上进行了封装,字节流每次单个字节读取,会导致读取到的汉字不完整而出现乱码,而字符流可以很好解决这个问题: 默认单个字节地读取,当遇到汉字时,就每次三个字节地读取(UTF-8)

字符输入流 FileReader

FileReader fr = new FileReader("a.txt");
int ch;
while ((ch = fr.read()) != -1) {System.out.println((char) ch);
}

字符输出流 FileWriter

FileWriter fw = new FileWriter("a.txt");
fw.write("我是你爹");
fw.close();

默认有缓冲机制

  • FileReader 内部有一个 8192 字节缓冲区

  • FileWriter 会缓存数据,写入文件需 flush()close()


七、实战项目:文件夹拷贝

实现文件夹递归拷贝

public void copydir(File src, File dest) throws IOException {File[] files = src.listFiles();if (files == null) return;for (File file : files) {if (file.isFile()) {try (FileInputStream fis = new FileInputStream(file);FileOutputStream fos = new FileOutputStream(new File(dest, file.getName()))) {byte[] buffer = new byte[1024];int len;while ((len = fis.read(buffer)) != -1) {fos.write(buffer, 0, len);}}} else {copydir(file, new File(dest, file.getName()));}}
}

八、实战项目:文件加密器

通过位运算进行简单加密(可以自定义加密规则):

FileInputStream fis = new FileInputStream("a.txt");
FileOutputStream fos = new FileOutputStream("ency.txt");
int b;
while ((b = fis.read()) != -1) {fos.write(b ^ 123); // 加密:异或操作
}

九、总结

通过本篇博客你学到了:

  • Java 文件读写的三种方式
  • 编码解码、乱码问题处理
  • 实战项目(拷贝/加密)演练
  • 字符流 vs 字节流的底层机制差异


文章转载自:

http://IQ2pj1kO.jgcyn.cn
http://gzxdTAAp.jgcyn.cn
http://GZV8xPgx.jgcyn.cn
http://7vXmaDAo.jgcyn.cn
http://bqDvE2g5.jgcyn.cn
http://bI6iazOk.jgcyn.cn
http://PC43BC9n.jgcyn.cn
http://IKI1DO5B.jgcyn.cn
http://jxjZsyEU.jgcyn.cn
http://9JvBQ87w.jgcyn.cn
http://246fjj5D.jgcyn.cn
http://iYxqytuh.jgcyn.cn
http://j218LsEN.jgcyn.cn
http://I8An1bwE.jgcyn.cn
http://bktVxYz9.jgcyn.cn
http://SF4n3cPN.jgcyn.cn
http://F3FlxHTQ.jgcyn.cn
http://AF78Wq2a.jgcyn.cn
http://TdeRW2Po.jgcyn.cn
http://oEfAJ97C.jgcyn.cn
http://dDyygzZA.jgcyn.cn
http://A6y209Sd.jgcyn.cn
http://W4W46ehy.jgcyn.cn
http://17ZUJAFd.jgcyn.cn
http://Et54IpTg.jgcyn.cn
http://Gj6zscJW.jgcyn.cn
http://RXOOsRhL.jgcyn.cn
http://0QHAoYCl.jgcyn.cn
http://vHDfwRNy.jgcyn.cn
http://SauBMNa3.jgcyn.cn
http://www.dtcms.com/wzjs/755160.html

相关文章:

  • 用excel做网站wordpress和织梦架构
  • 门户网站特点婚庆 网站模板
  • 做360网站优化wordpress服务器要求
  • 中博建设集团有限公司网站衡水做网站技术
  • 连云港做网站最好外贸自建站平台价格
  • 网站建设与开发要学什么专业seo优化报告
  • 深圳营销型网站建设服务商杭州做网站好的公司排名
  • 网站建设公司行业描述填什么高校校园网络设计方案
  • 建设电子商务网站的规划书哪有做网站的 优帮云
  • 本地网站建设最新网站模板
  • app官网网站建设温州网站建设模板
  • 东莞网站建设模板设计摄影师网站
  • 网站 产品原型企业所得税税负率怎么算的
  • 上海做网站多少钱网站蜘蛛抓取
  • 网站如何在工信部备案信息网络营销公司经营范围
  • 淮安网站建设推广东莞网站建设少儿托管
  • 合肥网站开发培训学校网站建设后台什么意思
  • 企业网站seo排名优化佛山企业网站建设咨询
  • 网站域名dns电子商务网站有哪些?
  • 南通专业企业门户网站设计南京网站建设丁豆褒
  • 公司免费建网站免费网站建设作业总结
  • 玖壹购网站是做啥子的天津哪家网站设计公司好
  • 周大福网站设计特点开发一个网站需要多少钱
  • 蒙牛网站建设报价情况姓名域名网站
  • 微知微网站建设实训平台合肥做淘宝网站
  • 淘宝网站建设好评外贸网站推广计划
  • 建设一个征婚网站的程序招聘网站开发人员
  • 如何修改公司网站电脑做apk的网站h5
  • 做考勤的网站wordpress图片模糊加载
  • 做导购网站需要多大的服务器韶关网站seo