地税网站建设管理wordpress4.0.1

张小明 2026/1/9 6:17:26
地税网站建设管理,wordpress4.0.1,dede后台做两个网站,网站建设和维护工作内容作为Java程序员#xff0c;不管是读写文件、处理网络数据#xff0c;还是操作控制台输入输出#xff0c;IO 都是绕不开的坎。刚学的时候#xff0c;看着 InputStream、OutputStream、Reader、Writer 一堆类#xff0c;属实有点头大。今天就用大白话#xff0c;把Java IO的…作为Java程序员不管是读写文件、处理网络数据还是操作控制台输入输出IO 都是绕不开的坎。刚学的时候看着 InputStream、OutputStream、Reader、Writer 一堆类属实有点头大。今天就用大白话把Java IO的核心知识点捋清楚新手也能轻松看懂一、先搞懂Java IO到底是啥IO全称 Input/Output翻译过来就是输入和输出。说白了就是程序和外部设备之间的数据传输。比如你用Java程序读取本地的txt文件这就是输入Input —— 数据从文件进到程序里你把程序里的用户信息写入到数据库或者保存成一个新文件这就是输出Output —— 数据从程序跑到外部存储里。Java把这些IO操作都封装在了 java.io 包下后来又出了 java.nio NIO是Non-blocking IO非阻塞IO今天先聊传统IO。核心思路就是用流的方式处理数据这“流”就像水管数据就是水管里的水顺着水管就能从一端流到另一端。二、核心分类字节流 vs 字符流Java IO最核心的划分就是字节流和字符流。这俩的区别直接决定了你该用哪个类干活。2.1 字节流处理一切数据的“万能选手”字节流的操作单位是 字节byte1个字节等于8位。不管是文本文件、图片、音频、视频本质上都是字节组成的所以字节流能处理任何类型的数据。字节流的顶级父类是两个抽象类- InputStream所有字节输入流的爹负责读数据- OutputStream所有字节输出流的爹负责写数据我们常用的是它们的子类比如操作文件的 FileInputStream 和 FileOutputStream。举个简单的例子用字节流复制一张图片javaimport java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class ByteStreamDemo {public static void main(String[] args) {// 源文件路径和目标文件路径String srcPath D:/test.jpg;String destPath D:/test_copy.jpg;// 声明流对象FileInputStream fis null;FileOutputStream fos null;try {// 创建流对象fis new FileInputStream(srcPath);fos new FileOutputStream(destPath);// 定义缓冲区每次读1024字节提高效率byte[] buffer new byte[1024];int len; // 记录每次实际读取的字节数// 循环读取读到末尾时fis.read()会返回-1while ((len fis.read(buffer)) ! -1) {// 把读到的字节写入目标文件fos.write(buffer, 0, len);}System.out.println(图片复制成功);} catch (IOException e) {e.printStackTrace();} finally {// 关闭流释放资源顺序是先开后关try {if (fos ! null) fos.close();if (fis ! null) fis.close();} catch (IOException e) {e.printStackTrace();}}}}这里要注意两个点一是一定要用 finally 关闭流不然会浪费系统资源二是用字节数组当缓冲区比一次读一个字节快太多了2.2 字符流处理文本的“专业选手”字符流的操作单位是 字符char它是为了处理文本数据而生的。因为不同的编码格式比如UTF-8、GBK一个字符对应的字节数不一样字符流会帮我们自动处理编码问题避免出现乱码。字符流的顶级父类也是两个抽象类- Reader所有字符输入流的爹负责读文本- Writer所有字符输出流的爹负责写文本常用子类比如 FileReader 和 FileWriter直接用来读写文本文件超方便。同样举个例子用字符流读取txt文件内容javaimport java.io.FileReader;import java.io.IOException;public class CharStreamDemo {public static void main(String[] args) {String filePath D:/test.txt;FileReader fr null;try {fr new FileReader(filePath);char[] buffer new char[1024];int len;while ((len fr.read(buffer)) ! -1) {// 把字符数组转成字符串输出System.out.print(new String(buffer, 0, len));}} catch (IOException e) {e.printStackTrace();} finally {try {if (fr ! null) fr.close();} catch (IOException e) {e.printStackTrace();}}}}这里要注意字符流不能处理图片、音频等二进制文件强行用的话文件会损坏三、进阶技巧缓冲流让IO速度飞起来刚才的例子里我们自己定义了字节数组/字符数组当缓冲区但Java其实给我们提供了更方便的缓冲流它的底层就是自带了缓冲区能大大减少磁盘的读写次数提升效率。缓冲流分为字节缓冲流和字符缓冲流- 字节缓冲流 BufferedInputStream 、 BufferedOutputStream- 字符缓冲流 BufferedReader 、 BufferedWriter尤其是字符缓冲流还提供了 readLine() 按行读和 newLine() 换行方法处理文本简直不要太爽举个字符缓冲流的例子按行读取文本并写入新文件javaimport java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class BufferedStreamDemo {public static void main(String[] args) {String srcPath D:/source.txt;String destPath D:/dest.txt;BufferedReader br null;BufferedWriter bw null;try {br new BufferedReader(new FileReader(srcPath));bw new BufferedWriter(new FileWriter(destPath));String line;// 按行读取读到末尾返回nullwhile ((line br.readLine()) ! null) {bw.write(line);bw.newLine(); // 写入换行符不然所有内容会挤在一行}System.out.println(文本复制完成);} catch (IOException e) {e.printStackTrace();} finally {try {if (bw ! null) bw.close();if (br ! null) br.close();} catch (IOException e) {e.printStackTrace();}}}}四、必踩的坑这些注意事项要记牢1. 流一定要关闭不管是手动关还是用try-with-resources语法JDK7及以上支持不关闭流会导致资源泄漏。try-with-resources会自动关闭流推荐使用java// try-with-resources语法流对象写在try的括号里try (FileInputStream fis new FileInputStream(test.jpg);FileOutputStream fos new FileOutputStream(test_copy.jpg)) {// 读写操作} catch (IOException e) {e.printStackTrace();}2. 区分绝对路径和相对路径绝对路径是从盘符开始的完整路径比如D:/test.txt相对路径是相对于项目根目录的路径比如src/test.txt别搞混了导致文件找不到。3. 处理编码问题如果用字符流读写出现乱码可以指定编码格式比如用 InputStreamReader 包装字节流javaBufferedReader br new BufferedReader(new InputStreamReader(new FileInputStream(test.txt), UTF-8));4. 字节流和字符流别混用比如用FileOutputStream写文本再用FileReader读很容易出现乱码。五、总结Java IO其实没那么复杂记住核心逻辑就行- 按数据类型分字节流处理一切数据字符流专门处理文本- 按功能分节点流直接操作文件/设备比如FileInputStream和处理流包装节点流比如BufferedInputStream提升性能- 关键操作打开流→读写数据→关闭流掌握这些基础再去学NIO、NIO2就会轻松很多。希望这篇文章能帮到正在啃Java IO的小伙伴们祝大家编程愉快
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

农家乐网站建设营销方案海南政策最新消息

指针、数组和指针算术 指针和数组基本等价的原因在于指针算术(pointer afithmetic)和C内部处理数组的方式。首先,我 们来看一看算术。将整数变量加1后,其值将增加1;但将指针变量加1后,增加的量等于它指向的类型 的字节数。将指向d…

张小明 2026/1/6 4:39:45 网站建设

重庆网站建设哪里有网站建设合同要存档几年

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 快速开发一个EACCES错误诊断工具的最小可行产品(MVP),要求:1. 核心功能只需实现端口检测和基础错误提示 2. 使用最简代码结构 3. 包含一个简单的前端界面 4.…

张小明 2026/1/6 19:01:38 网站建设

外贸高端建站电商网站更适合

Excalidraw认证体系构想:技能等级评定可能性 在技术团队频繁依赖可视化沟通的今天,一张草图可能比千行文档更高效。系统架构师用它勾勒微服务拓扑,产品经理靠它对齐需求逻辑,工程师借它解释复杂流程——而这些“随手一画”的背后…

张小明 2026/1/7 8:31:34 网站建设

行业网站定位大河网

量子计算与超导电路的多领域探索 1. 量子芯片资源高效利用与多编程编译器 随着量子芯片规模的不断扩大以及对其可访问性需求的日益增长,如何高效利用硬件资源成为了人们关注的焦点。为应对这一挑战,研究者们提出了两种多编程编译器,它们能够在近期有噪声中等规模量子(NIS…

张小明 2026/1/7 4:33:17 网站建设

天水网站开发个人网站做电影网站

QQ截图独立版:解锁Windows屏幕捕捉新体验的完整手册 【免费下载链接】QQScreenShot 电脑QQ截图工具提取版,支持文字提取、图片识别、截长图、qq录屏。默认截图文件名为ScreenShot日期 项目地址: https://gitcode.com/gh_mirrors/qq/QQScreenShot 还在为复杂的…

张小明 2026/1/7 11:12:15 网站建设

做网站加手机app需要多少钱东乡建设网站

目标读者:具有生物/生物信息学背景、希望把统计学概念用于组学数据分析(RNA-seq、scRNA-seq、代谢组、临床关联分析等)的科研人员。 本文着重解释概念的数学原理、它们如何反映数据变化、在组学分析中常见的应用场景与注意点,并给…

张小明 2026/1/8 13:55:54 网站建设