网站开发数据流程图怎么画手机上传视频网站开发

news/2025/9/28 12:57:54/文章来源:
网站开发数据流程图怎么画,手机上传视频网站开发,网站下面的站长统计很逗,番禺响应式网站开发1 Java IO流的概念#xff0c;分类1.1 Java IO流的概念java的IO是实现输入和输出的基础#xff0c;可以方便的实现数据的输入和输出操作。在java中把不同的输入/输出源(键盘#xff0c;文件#xff0c;网络连接等)抽象表述为“流”(stream)。流的本质是数据传输#xff0c…1 Java IO流的概念分类1.1 Java IO流的概念java的IO是实现输入和输出的基础可以方便的实现数据的输入和输出操作。在java中把不同的输入/输出源(键盘文件网络连接等)抽象表述为“流”(stream)。流的本质是数据传输根据数据传输特性将流抽象为各种类方便更直观的进行数据操作。1.2.1按照流的流向分可以分为输入流和输出流。输入流只能从中读入数据而不能向其写出数据。输出流只能向其写出数据而不能向其读入数据。注为什么叫写出和读入这里涉及到一个方向问题因为划分输入/输出流时是从程序运行所在的内存的角度来考虑的将内存中的数据写出到硬盘中的文件或者是将硬盘中文件的信息读入到内存。注java的输入流主要是InputStream和Reader作为基类而输出流则是主要由OutputStream和Writer作为基类。它们都是一些抽象基类无法直接创建实例。1.2.2 按照操作单元划分可以划分为字节流和字符流。字符流的由来 因为数据编码的不同而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时去查了指定的码表。字节流和字符流的区别读写单位不同字节流以字节(8bit)为单位字符流以字符为单位根据码表映射字符一次可能读多个字节。处理对象不同字节流能处理所有类型的数据(如图片、avi等)而字符流只能处理字符类型的数据。字节流一次读入或读出是8位二进制。字符流一次读入或读出是16位二进制。1.2.3 按照流的角色划分为节点流和处理流。节点流(低级流)直接与数据源相连读入或写出。直接使用节点流读写不方便为了更快的读写文件才有了处理流。处理流(高级流)和节点流一块使用在节点流的基础上再套接一层套接在节点流上的就是处理流。如BufferedReader处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装称为流的链接。1.3.1 流的原理浅析:java IO流共涉及40多个类这些类看上去很杂乱但实际上很有规则而且彼此之间存在非常紧密的联系 Java IO流的40多个类都是从如下4个抽象类基类中派生出来的。InputStream/Reader: 所有的输入流的基类前者是字节输入流后者是字符输入流。OutputStream/Writer: 所有输出流的基类前者是字节输出流后者是字符输出流。对于InputStream和Reader而言它们把输入设备抽象成为一个”水管“这个水管的每个“水滴”依次排列。字节流和字符流的处理方式其实很相似只是它们处理的输入/输出单位不同而已。输入流使用隐式的记录指针来表示当前正准备从哪个“水滴”开始读取每当程序从InputStream或者Reader里面取出一个或者多个“水滴”后记录指针自定向后移动除此之外InputStream和Reader里面都提供了一些方法来控制记录指针的移动。对于OutputStream和Writer而言它们同样把输出设备抽象成一个”水管“只是这个水管里面没有任何水滴。当执行输出时程序相当于依次把“水滴”放入到输出流的水管中输出流同样采用隐示指针来标识当前水滴即将放入的位置每当程序向 OutputStream 或者 Writer 里面输出一个或者多个水滴后记录指针自动向后移动。注Java的处理流模型则体现了Java输入和输出流设计的灵活性。处理流的功能主要体现在以下两个方面。性能的提高主要以增加缓冲的方式来提供输入和输出的效率。操作的便捷处理流可能提供了一系列便捷的方法来一次输入和输出大批量的内容而不是输入/输出一个或者多个“水滴”。1.3.2 java输入/输出流体系中常用的流的分类表分类字节输入流字节输出流字符输入流字符输出流抽象基类InputStreamOutputStreamReaderWriter访问文件FileInputStreamFileOutputStreamFileReaderFileWriter访问数组ByteArrayInputStreamByteArrayOutputStreamCharArrayReaderCharArrayWriter访问管道PipedInputStreamPipedOutputStreamPipedReaderPipedWriter访问字符串StringReaderStringWriter缓冲流BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter转换流InputStreamReaderOutputStreamWriter对象流ObjectInputStreamObjectInputStream抽象基类FilterInputStreamFilterOutputStreamFilterReaderFilterWriter打印流PrintStreamPrintWriter推回输入流PushbackInputStreamPushbackReader特殊流DataInputStreamDataOutputStreamn注表中粗体字所标出的类代表节点流必须直接与指定的物理节点关联斜体字标出的类代表抽象基类无法直接创建实例。2.1 IO体系的基类(InputStream/ReaderOutputStream/Writer)字节流和字符流的操作方式基本一致只是操作的数据单元不同——字节流的操作单元是字节字符流的操作单元是字符。InputStream和Reader是所有输入流的抽象基类本身并不能创建实例来执行输入但它们将成为所有输入流的模板所以它们的方法是所有输入流都可使用的方法。在InputStream里面包含如下3个方法。int read(); 从输入流中读取单个字节(相当于从水管中取出一滴水)返回所读取的字节数据(字节数据可直接转换为int类型)。int read(byte[] b)从输入流中最多读取b.length个字节的数据并将其存储在字节数组b中返回实际读取的字节数。int read(byte[] b,int off,int len); 从输入流中最多读取len个字节的数据并将其存储在数组b中放入数组b中时并不是从数组起点开始而是从off位置开始返回实际读取的字节数。在Reader中包含如下3个方法。int read(); 从输入流中读取单个字符(相当于从水管中取出一滴水)返回所读取的字符数据(字节数据可直接转换为int类型)。int read(char[] b)从输入流中最多读取b.length个字符的数据并将其存储在字节数组b中返回实际读取的字符数。int read(char[] b,int off,int len); 从输入流中最多读取len个字符的数据并将其存储在数组b中放入数组b中时并不是从数组起点开始而是从off位置开始返回实际读取的字符数。InputStream和Reader提供的一些移动指针的方法void mark(int readAheadLimit); 在记录指针当前位置记录一个标记(mark)。boolean markSupported(); 判断此输入流是否支持mark()操作即是否支持记录标记。void reset(); 将此流的记录指针重新定位到上一次记录标记(mark)的位置。long skip(long n); 记录指针向前移动n个字节/字符。OutputStream和Writer的用法也非常相似两个流都提供了如下三个方法void write(int c); 将指定的字节/字符输出到输出流中其中c即可以代表字节也可以代表字符。void write(byte[]/char[] buf); 将字节数组/字符数组中的数据输出到指定输出流中。void write(byte[]/char[] buf, int off,int len ); 将字节数组/字符数组中从off位置开始长度为len的字节/字符输出到输出流中。因为字符流直接以字符作为操作单位所以Writer可以用字符串来代替字符数组即以String对象作为参数。Writer里面还包含如下两个方法。void write(String str); 将str字符串里包含的字符输出到指定输出流中。void write (String str, int off, int len); 将str字符串里面从off位置开始长度为len的字符输出到指定输出流中。2.2 IO体系的基类文件流的使用(FileInputStream/FileReader FileOutputStream/FileWriter)使用FileInputStream读取文件Testpublic void fileInputStreamTest() throws IOException {FileInputStream fis null;try {// 创建字节输入流fis new FileInputStream(D:/test/test.txt);// 创建一个长度为1024的竹筒byte[] b new byte[1024];// 用于保存的实际字节数int hasRead 0;// 使用循环来重复取水的过程while ((hasRead fis.read(b)) 0) {// 取出竹筒中的水滴(字节)将字节数组转换成字符串进行输出, 后面的gbk是为了处理中文乱码问题System.out.print(new String(b, 0, hasRead, gbk));}} catch (IOException e) {e.printStackTrace();} finally {fis.close();}}注上面程序最后使用了fis.close()来关闭该文件的输入流与JDBC编程一样程序里面打开的文件IO资源不属于内存的资源垃圾回收机制无法回收该资源所以应该显示的关闭打开的IO资源。Java 7改写了所有的IO资源类它们都实现了AntoCloseable接口因此都可以通过自动关闭资源的try语句来关闭这些IO流。使用FileReader读取文件Testpublic void fileReaderTest() throws IOException{FileReader fis null;try {// 创建字节输入流fis new FileReader(D:/test/test.txt);// 创建一个长度为1024的竹筒char[] b new char[1024];// 用于保存的实际字节数int hasRead 0;// 使用循环来重复取水的过程while ((hasRead fis.read(b)) 0) {// 取出竹筒中的水滴(字节)将字节数组转换成字符串进行输出System.out.print(new String(b, 0, hasRead));}} catch (IOException e) {e.printStackTrace();} finally {fis.close();}}可以看出使用FileInputStream和FileReader进行文件的读写并没有什么区别只是操作单元不同而且。FileOutputStream的用法Testpublic void fileOutputStreamTest() throws IOException {FileInputStream fis null;FileOutputStream fos null;try {// 创建字节输入流fis new FileInputStream(D:/test/test.txt);// 创建字节输出流fos new FileOutputStream(D:/test/test2.txt);byte[] b new byte[1024];int hasRead 0;// 循环从输入流中取出数据while ((hasRead fis.read(b)) 0) {// 每读取一次即写入文件输入流读了多少就写多少。fos.write(b, 0, hasRead);}} catch (IOException e) {e.printStackTrace();} finally {fis.close();fos.close();}}注 使用java的IO流执行输出时不要忘记关闭输出流关闭输出流除了可以保证流的物理资源被回收之外可能还可以将输出流缓冲区中的数据flush到物理节点中里(因为在执行close()方法之前自动执行输出流的flush()方法)。java很多输出流默认都提供了缓存功能其实我们没有必要刻意去记忆哪些流有缓存功能哪些流没有只有正常关闭所有的输出流即可保证程序正常。4.缓冲流的使用(BufferedInputStream/BufferedReader, BufferedOutputStream/BufferedWriter)字节缓冲流Testpublic void bufferedTest() throws IOException {FileInputStream fis null;FileOutputStream fos null;BufferedInputStream bis null;BufferedOutputStream bos null;try {// 创建字节输入流fis new FileInputStream(D:/test/test.txt);// 创建字节输出流fos new FileOutputStream(D:/test/test3.txt);// 创建字节缓存输入流bis new BufferedInputStream(fis);// 创建字节缓存输出流bos new BufferedOutputStream(fos);byte[] b new byte[1024];int hasRead 0;// 循环从缓存流中读取数据while ((hasRead bis.read(b)) 0) {// 向缓存流中写入数据读取多少写入多少bos.write(b, 0, hasRead);}} catch (IOException e) {e.printStackTrace();} finally {bis.close();bos.close();}}可以看到使用字节缓存流读取和写入数据的方式和文件流(FileInputStream,FileOutputStream)并没有什么不同只是把处理流套接到文件流上进行读写。上面代码中我们使用了缓存流和文件流但是我们只关闭了缓存流。这个需要注意一下当我们使用处理流套接到节点流上的使用的时候只需要关闭最上层的处理就可以了。java会自动帮我们关闭下层的节点流。2.3 转换流的使用(InputStreamReader/OutputStreamWriter):下面以获取键盘输入为例来介绍转换流的用法。java使用System.in代表输入。即键盘输入但这个标准输入流是InputStream类的实例使用不太方便而且键盘输入内容都是文本内容所以可以使用InputStreamReader将其包装成BufferedReader,利用BufferedReader的readLine()方法可以一次读取一行内容如下代码所示:转换流的使用Testpublic void changeStreamTest(){try {// 将System.in对象转化为Reader对象InputStreamReader readernew InputStreamReader(System.in);//将普通的Reader包装成BufferedReaderBufferedReader bufferedReadernew BufferedReader(reader);String buffernull;while ((bufferbufferedReader.readLine())!null){// 如果读取到的字符串为“exit”,则程序退出if(buffer.equals(exit)){System.exit(1);}//打印读取的内容System.out.print(输入内容buffer);}}catch (IOException e){e.printStackTrace();}finally {}}上面程序将System.in包装成BufferedReader,BufferedReader流具有缓存功能它可以一次读取一行文本——以换行符为标志如果它没有读到换行符则程序堵塞。等到读到换行符为止。运行上面程序可以发现这个特征当我们在控制台执行输入时只有按下回车键程序才会打印出刚刚输入的内容。2.4 对象流的使用(ObjectInputStream/ObjectOutputStream)的使用对象类package com.design.prompt;import java.io.Serializable;public class UserTest implements Serializable {/****/private static final long serialVersionUID 6522988290199824802L;private String username;transient String password;public UserTest(){}public UserTest(String username, String password) {super();this.username username;this.password password;}public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}Overridepublic String toString() {return UserTest [username username , password password ];}}写出对象Testpublic void objectWriterTest() {OutputStream outputStream null;BufferedOutputStream buf null;ObjectOutputStream obj null;try {// 序列化文件輸出流outputStream new FileOutputStream(D:/test/test.txt);// 构建缓冲流buf new BufferedOutputStream(outputStream);// 构建字符输出的对象流obj new ObjectOutputStream(buf);// 序列化数据写入obj.writeObject(new UserTest(A, 123));// Person对象// 关闭流obj.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}读入对象Testpublic void objectReaderTest() {try {InputStream inputStream new FileInputStream(D:/test/test.txt);// 构建缓冲流BufferedInputStream buf new BufferedInputStream(inputStream);// 构建字符输入的对象流ObjectInputStream obj new ObjectInputStream(buf);UserTest tempPerson (UserTest) obj.readObject();System.out.println(UserTest对象为 tempPerson);// 关闭流obj.close();buf.close();inputStream.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}}注使用对象流的一些注意事项1.读取顺序和写入顺序一定要一致不然会读取出错。2.在对象属性前面加transient关键字则该对象的属性不会被序列化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web3实战工程 - hardhat框架

web3实战工程 - hardhat框架pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco",…

重组蛋白表达中包涵体的形成与优化策略

重组蛋白表达中包涵体的形成与优化策略 重组蛋白广泛应用于基础研究、生物制药和工业酶制剂等领域。大肠杆菌(Escherichia coli)因生长快、操作简便、成本低、表达量高,长期作为主要的重组蛋白宿主。然而高水平表达…

【MySQL】性能优化与核心机制深度解析 - 详解

【MySQL】性能优化与核心机制深度解析 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &qu…

程序员究竟要不要写文章

写在前面 时光飞逝,一晃已经从业七年有余,若从接触编程的时间算起,恐怕还要再加个四五年,可以堂而皇之地自称为拥有十多年的编程经验了,哈哈。 一路上,经常会有人问我,我们为什么要写文章甚至博客,有什么意义吗…

B4375 [蓝桥杯青少年组省赛 2025] 庆典队列B4376 [蓝桥杯青少年组省赛 2025] 茶具套装B4377 [蓝桥杯青少年组省赛 2025] 平衡奇偶位置的字符交换

好久不见,最近参加了蓝桥的省赛,虽然只是省二,但是还是要总结一下 今儿个三合一,前三道 1.B4375 [蓝桥杯青少年组省赛 2025] 庆典队列 题目描述 有 \(n\) 名志愿者参加了一场庆典活动,我们希望将这些人排成一个矩…

2025 年纽扣电池厂家:力源电池以 TWS 适配技术与定制服务,打造多场景电源解决方案

在 5G 技术全面普及与智能穿戴设备市场爆发的双重驱动下,纽扣电池市场需求持续攀升,2024 年全球市场规模已达 49.58 亿美元,预计 2025 年将保持 6.3% 的复合增长率。其中 TWS 耳机作为核心应用场景占比达 18%,对电…

web3hardhat 框架实战-ERC20 - 指南

web3hardhat 框架实战-ERC20 - 指南2025-09-28 12:46 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !imp…

网站开发人员定罪案例汽车网站建设公司哪家好

如果网站跑在了LAMP环境中,就无法使用php-fpm的slow log了,那如何分析瓶颈点?没关系你还可以使用这个XdebugWebgrind,其中Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析…

网站建设与管理报告市场运营和市场营销的区别

声明:该专栏涉及的所有案例均为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系本人删帖! 文章目录 一、前言二、网站分析1.X-S-HEADER参数2.请求参数data3.响应机密值data一、前言 网址: aHR0cHM6Ly93d3cubGFnb3UuY29t…

网站访问工具wordpress文章模块化插件

在网络通信中,密钥的安全分发和公钥的有效认证是确保系统安全的关键。本文将为基础小白介绍密钥分发与公钥认证的基本概念和实际应用,帮助大家更好地理解这些技术如何保障我们的网络通信安全。 1. 密钥分发与公钥认证的背景 由于密码算法是公开的&…

wordpress中怎么排序上饶网站优化

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

crewCTF 2025 -- WASM Vault

从 js 中看出,先把输入的 flag 存到 wasm 的内存为 0 的位置,然后调用 vault.wasm 导出的 unlock() 函数判断 这里用开源项目 wabt 把 wasm 转成 c 文件,再用 gcc 编译成二进制文件,这样就可以拖到 ida 里分析了 w…

东莞做网站的模块网站怎么做

1 非静态代码块非静态代码块特点①可以为实例变量(非静态的属性)初始化②每次创建对象的时候,都会执行一次,且先于构造器执行③若有多个非静态的代码块,那么按照定义的顺序从上到下依次执行④代码块中既可以调用非静态的变量和方法&#xff0…

神经网络常见的40多种激活函数(应用场景+数学公式+代码实现+函数图象)

长文预警:经典的、大模型用的、探索研究的,这里都有什么是激活函数 激活函数,属于神经网络中的概念。 激活函数,就像神经元的开关,决定了输入信号能否被传递,以及以什么形式传递。 为应对不同的场景,激活函数不…

oppo-r9m线刷刷机教程

前言全局说明oppo-r9m线刷刷机教程一、说明 1.1 环境: Windows 7 旗舰版二、刷机首次刷机,电脑需要安装驱动2.1 打开刷机工具 找到”刷机工具.exe”双击打开如下图 (如果工具打不开以管理员身份运行打开。)2.2 手机…

【DateTime】日期时间:时间处理的基础

【DateTime】日期时间:时间处理的基础教学说明:本篇因 DateTime 数据类型需要,将提前使用 Get-Date 函数。该函数会在后续 “初级篇” 中详细讲解,此处仅用于演示 DateTime 类型的基本操作。 在编程中,日期时间(…

网站建设行业新闻南宁网站建设推广服务

(2011-10-08 17:08:43) 转载▼标签: 杂谈 分类: Javatry{//代码区}catch(Exception e){//异常处理}代码区如果有错误,就会返回所写异常的处理。 首先要清楚,如果没有try的话,出现异常会导致程序崩溃。而try则可以保证…

地图制作网站小程序定制开发和模板有什么区别

大家好,我是写代码的篮球。计算机专业的小伙伴,在学校期间一定学过 C 语言。它是众多高级语言的鼻祖,深入学习这门语言会对计算机原理、操作系统、内存管理等等底层相关的知识会有更深入的了解,所以我在直播的时候,多次…

完整教程:蒸汽机革命后工业生产方式的变革与AI智能名片S2B2C商城小程序的影响

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 PHP7/8 实战入门:15 天精通现代 Web 制作——第 15 课:项目实战与部署

2025 PHP7/8 实战入门:15 天精通现代 Web 制作——第 15 课:项目实战与部署pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fam…