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

社交网站开发平台建工在线

社交网站开发平台,建工在线,网站 参数设置,廊坊市做网站本系列为笔者学习Javase的课堂笔记,视频资源为B站黑马程序员出品的《黑马程序员JavaAI智能辅助编程全套视频教程,java零基础入门到大牛一套通关》,章节分布参考视频教程,为同样学习Javase系列课程的同学们提供参考。 01 概述 内存…

本系列为笔者学习Javase的课堂笔记,视频资源为B站黑马程序员出品的《黑马程序员Java+AI智能辅助编程全套视频教程,java零基础入门到大牛一套通关》,章节分布参考视频教程,为同样学习Javase系列课程的同学们提供参考。

01 概述

在这里插入图片描述

内存和磁盘有啥区别呀?

  • 内存(RAM,随机访问存储器):是计算机中运行程序时临时存储数据的地方。程序运行时,代码和数据会从硬盘加载到内存里,然后CPU直接从内存读写数据,速度非常快。
  • 磁盘(硬盘,HDD或固态硬盘SSD):是计算机长期存储数据的地方,保存操作系统、程序、图片、视频等文件。断电后数据依然保留,容量通常比内存大很多。

02 IO 流的体系

在这里插入图片描述

  • 字节输入流InputStream(读字节数据的)
  • 字节输出流OutputStream(写字节数据出去的)
  • 字符输入流Reader(读字符数据的)
  • 字符输出流Writer(写字符数据出去的)

03 文件字节输入流

在这里插入图片描述

FileInputstream(文件字节输入流) 是以内存为基准,可以把磁盘文件中的数据以字节的形式读入到内存中去。

在这里插入图片描述

package FileDemo;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;public class InputStreamDemo1 {public static void main(String[] args) throws Exception {//目标:文件字节输入流//1.创建文件字节输入流管道,接通源文件//a.绝对路径//InputStream is = new FileInputStream(new File("E:\\JAVA\\javase0331\\0416-oop\\src\\FileDemo\\name.txt"));//b.相对路径InputStream is = new FileInputStream(new File("0416-oop\\src\\FileDemo\\name.txt"));//2.读取文件字节,输出//a.一个一个读int b;while((b = is.read()) != -1){System.out.print((char) b);}//b.一批一批读byte[] buffer = new byte[3];int len;while((len = is.read(buffer)) != -1){String str = new String(buffer, 0, len);System.out.print(str);}//注:存在截断文字3字节的隐患!可以一次性读完所有字节以避免该问题。//3.关闭文件字节输出流is.close();}
}

04 文件字节输出流

在这里插入图片描述

在这里插入图片描述

package FileDemo;import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStream;public class OutputStreamDemo1 {public static void main(String[] args) throws Exception {//目标:文件字节输出流//1.创建文件字节输出流管道,接通目标文件//OutputStream os = new FileOutputStream(new File("0416-oop\\src\\FileDemo\\name2.txt"));//true代表数据追加OutputStream os = new FileOutputStream(new File("0416-oop\\src\\FileDemo\\name2.txt"), true);//2.写入数据,输出os.write(97);os.write('a');os.write("\r\n".getBytes());byte[] bytes = "我爱你中国666".getBytes();os.write(bytes);os.write("\r\n".getBytes());os.write(bytes, 0, 3);os.write("\r\n".getBytes());//3.关闭文件字节输出流os.close();}
}

os.write("\r\n".getBytes());啥意思?

  • "\r\n" 是回车换行符,也就是 Windows 系统的换行表示(Carriage Return + Line Feed)
  • "".getBytes() 是把这个字符串转换成字节数组(byte[]),因为 os.write() 方法需要的是字节数组。
  • os 是一个输出流(OutputStream),通过 write(byte[] b) 方法向流中写入数据。

05 案例:文件复制

在这里插入图片描述

package FileDemo;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;public class CopyDemo {public static void main(String[] args) {//目标:文件复制//源文件:E:\JAVA\IMG_4623.jpg//目标文件:D:\IMG_4623.jpgtry{copyFile("E:\\JAVA\\IMG_4623.jpg","D:\\IMG_4623.jpg");}catch (Exception e){e.printStackTrace();}}public static void copyFile(String srcPath, String destPath) throws Exception {//1.创建文件字节输入输出流管道FileInputStream fis = new FileInputStream(srcPath);FileOutputStream fos = new FileOutputStream(destPath);//2.读取一个字节数组,写入一个字节数组byte[] buffer = new byte[1024];int len;while((len = fis.read(buffer)) != -1){fos.write(buffer, 0, len); //读多少,倒多少}System.out.println("复制成功!");//3.非专业关闭fos.close();fis.close();}
}

任何文件的底层都是字节,字节流做复制,是一字不漏的转移完全部字节,只要复制后的文件格式一致就没问题!

06 资源释放

Ctrl + Alt + T召唤try/catch

package FileDemo;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;public class CopyDemo {public static void main(String[] args) {//目标:文件复制//源文件:E:\JAVA\IMG_4623.jpg//目标文件:D:\IMG_4623.jpgcopyFile("E:\\JAVA\\IMG_4623.jpg","D:\\IMG_4623.jpg");}public static void copyFile(String srcPath, String destPath){FileInputStream fis = null;FileOutputStream fos = null;try {//1.创建文件字节输入输出流管道fis = new FileInputStream(srcPath);fos = new FileOutputStream(destPath);//2.读取一个字节数组,写入一个字节数组byte[] buffer = new byte[1024];int len;while((len = fis.read(buffer)) != -1){fos.write(buffer, 0, len); //读多少,倒多少}System.out.println("复制成功!");} catch (IOException e) {e.printStackTrace();} finally {//3.专业关闭(臃肿)try {if(fos != null) fos.close();} catch (IOException e) {e.printStackTrace();}try {if(fis != null) fis.close();} catch (IOException e) {e.printStackTrace();}}}
}

finally代码区的特点为,无论try中的程序是正常执行了,还是出现了异常,最后都一定会执行finally区,除非JVM终止,其一般用于在程序执行完成后进行资源的释放操作(专业级做法)。

public static void copyFile(String srcPath, String destPath){try (//1.创建文件字节输入输出流管道FileInputStream fis = new FileInputStream(srcPath);FileOutputStream fos = new FileOutputStream(destPath);){//2.读取一个字节数组,写入一个字节数组byte[] buffer = new byte[1024];int len;while((len = fis.read(buffer)) != -1){fos.write(buffer, 0, len); //读多少,倒多少}System.out.println("复制成功!");} catch (IOException e) {e.printStackTrace();}
}

注:()中只能放资源,否则报错,而资源一般是指最终实现了AutoCloseable接口。

在这里插入图片描述

07 文件字符输入流

FileReader文件字符输入流是以内存为基准,可以把文件中的数据以字符的形式读入到内存中去。

在这里插入图片描述

package FileDemo;import java.io.FileReader;
import java.io.Reader;public class FileReaderDemo1 {public static void main(String[] args) {//目标:文件字符输入流//1.创建文件字符输入流管道try (Reader f1 = new FileReader("0416-oop\\src\\FileDemo\\name.txt")) {//2.定义一个字符数组,一次读取多个字符char[] chars = new char[3];int len;while((len = f1.read(chars)) != -1){String str = new String(chars, 0, len);System.out.print(str); //不要换行!}}catch (Exception e){e.printStackTrace();}}
}

注:文件字符输入流一次读取多个字符,按照字符读取中文,性能好,速度高。

08 文件字符输出流

FileWriter文件字符输出流是以内存为基准,把内存中的数据以字符的形式写出到文件中去。

在这里插入图片描述

在这里插入图片描述

package FileDemo;import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;public class FileWriterDemo1 {public static void main(String[] args) {try {//1.创建文件字符输出流管道Writer w1 = new FileWriter("0416-oop\\src\\FileDemo\\name2.txt");//2.写一个字符w1.write(98);w1.write('c');w1.write('戈');//3.写一个字符串w1.write("java");w1.write("亲爱的你躲在哪里发呆");//4.写一个字符数组char[] chars = "javaWeb".toCharArray();w1.write(chars);w1.write(chars, 0, 3);//5.刷新内存缓冲区//w1.flush(); //嘿嘿,上面()自动关闭流} catch (IOException e) {e.printStackTrace();}}
}

注:字符输出流写出数据后,必须刷新流,或者关闭流,写出去的数据才能生效。

在这里插入图片描述

注:刷新后,流可以继续使用,关闭后,流不能继续使用。

http://www.dtcms.com/a/603286.html

相关文章:

  • Agentic AI TASK02 Reflection Design and Pattern
  • 撰写网站专题活动策划方案网站备案域名购买
  • 2014 吉林省赛题解 | CCUT应用OJ题解——F[X] + X = N
  • 如何做网站使用手册两个网站如何使用一个虚拟主机
  • 【云运维】Kubernetes 安装(基于Containerd+Calico)
  • 芜湖高端网站建设网站推广 济南
  • 公共部门网站建设维护网站挂黑链
  • wordpress怎么做的wifi优化大师下载
  • 免费婚庆网站模板嵌入式网站开发培训
  • 网站关键词先后开发公司安全管理组织机构图
  • 网站建设域名什么意思wordpress插件点不开
  • wordpress怎样建立多站点手机百度账号登录个人中心
  • 2025-11-12[第三大的数、将x减到0的最小操作数]
  • 基层建设刊物网站建筑工程网签备案合同
  • 强化学习基础概念与核心算法全解析
  • 解释型与编译型编程语言的区别 | 深入了解两者的工作原理与优劣
  • 人工智能网站应怎么做长春市长春网站建设哪家好
  • 建宣传网站北京营销策划公司有哪些
  • 网站系统开发毕业设计网站建设ppt百度文库
  • 2.2 前向传播与反向传播:深度学习的核心机制全解析
  • 山东省建设厅官方网站怎么样如何创建网站?
  • UrealEngine-5.2.1源码-AbilitySystemComponent.h
  • FPGA教程系列-Vivado中FIFO的简单仿真分析
  • 网站开发需要什么工具公司介绍怎么写范本
  • 网站建设责任书广东省建设厅官方网站网址
  • WebView 远程调试全指南,跨端真机调试的完整解决方案
  • wordpress企业网站 教程wordpress站点标题
  • 网站建设的职责dedecms 金融类网站模板
  • STM32的电子钟功能实现
  • 安徽网站建设微信开发注册公司官网入口