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

景德镇做网站公司在线查网站的ip地址

景德镇做网站公司,在线查网站的ip地址,有什么做详情页的参考网站,专门做商标的网站有哪些IO流之内存流,打印流,随机流 1、内存流 1、理解 内存流"(Memory Stream)在计算机编程中通常指的是一种特殊的数据流,它在内存中存储和操作数据,而不是在外部存储(如硬盘、网络等&#xf…

IO流之内存流,打印流,随机流

1、内存流

1、理解

内存流"(Memory Stream)在计算机编程中通常指的是一种特殊的数据流,它在内存中存储和操作数据,而不是在外部存储(如硬盘、网络等)上进行。内存流提供了对数据流(如字节数组)的访问,就好像这些数据是存储在外部资源上一样,但实际上它们是在内存中直接操作的。

2、特点

  1. 速度快:由于数据在内存中,所以读取和写入操作通常比磁盘I/O或网络I/O要快得多。
  2. 方便性:内存流提供了与文件流或网络流类似的接口,使得开发者可以使用统一的模式来处理不同来源的数据。
  3. 临时性:内存流常用于存储临时数据,这些数据在程序运行期间需要被操作,但在程序结束后不再需要。

3、应用场景

  • 序列化与反序列化:对象可以序列化为字节数组并存储在内存流中,之后可以从内存流中反序列化回对象。
  • 图像处理:在处理图像时,可以将图像数据加载到内存流中,进行修改,然后再保存回文件或发送到网络。
  • 压缩与解压缩:数据可以在内存流中进行压缩或解压缩,而不必先写入磁盘或网络。
  • 网络编程:在网络编程中,内存流可以用于暂存从网络接收的数据,或准备要发送到网络的数据。

4、案例

1、内存输入流
package com.xx.neicun;import java.io.ByteArrayInputStream;
import java.io.IOException;public class Test01 {public static void main(String[] args) {//1.创建内存流输入对象ByteArrayInputStream bais = new ByteArrayInputStream("123木头人".getBytes());//2.关闭资源try {bais.close();} catch (IOException e) {e.printStackTrace();}//3.读取数据//这里定义了一个名为bs的字节数组,并初始化为长度为1024。这个数组将用于存储从输入流中读取的数据。byte[] bs=new byte[1024];//变量len将用于存储每次从输入流中读取的字节数。int len;try {//这是一个while循环,它将一直执行,直到bais.read(bs)返回-1。当read方法返回-1时,表示输入流中没有更多的数据可读,即已经到达了流的末尾。while((len=bais.read(bs))!=-1){System.out.println(new String(bs,0,len));}} catch (IOException e) {e.printStackTrace();}}
}
2、内存输出流
package com.xx.neicun;import java.io.ByteArrayOutputStream;
import java.io.IOException;public class Test02 {public static void main(String[] args) throws IOException {//1.创建内存输出流对象ByteArrayOutputStream baos = new ByteArrayOutputStream();//2.关闭资源,内存流时程序到内存的通道,关不掉的baos.close();//3.写入数据baos.write("123木头人".getBytes());//获取数据byte[] bs = baos.toByteArray();System.out.println(new String(bs));//获取数据String str = baos.toString();System.out.println(str);}
}

2、打印流

1、理解

打印流(PrintStream 和 PrintWriter)是用于方便地打印各种数据类型到输出流(如文件、控制台等)的类。这些类提供了许多重载的print()println()printf()方法,允许你以不同的格式打印数据。

2、特点

PrintStream

PrintStream是Java标准库中的一个类,它扩展了OutputStream类,并提供了方便的打印功能。通常,你会使用System.out(控制台输出)或System.err(错误输出)这两个PrintStream的实例。

PrintWriter

PrintWriter是另一个用于打印的类,但它扩展了Writer类,因此它用于字符输出流。PrintWriterPrintStream更强大,因为它支持字符编码,并且可以很容易地处理字符数据。

3、案例

1、字节打印流
package com.xx.println;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
//打印流只有一个方向
public class Test01 {public static void main(String[] args) throws IOException {//1.创建打印流对象//PrintStream ps = new PrintStream("xx.txt");//1.创建打印流对象,将字节流转换为字节打印流//PrintStream ps = new PrintStream(new FileOutputStream("xx.txt"));//1.创建打印流对象,将字节流转换为字节打印流+末尾朱家PrintStream ps = new PrintStream(new FileOutputStream("xx.txt",true));//2.写入数据ps.println("123muroyu");//关闭资源ps.close();}
}
2、字符打印流
package com.xx.println;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;public class Test02 {public static void main(String[] args) throws IOException {//1.创建字符流对象//PrintWriter pw = new PrintWriter("xx.txt");//1/创建字符流对象,将字节流转换为字符打印流//PrintWriter pw = new PrintWriter(new FileOutputStream("xx.txt"));//1.创建字符打印流,将将字符流转换为字符打印流//PrintWriter pw = new PrintWriter(new FileWriter("xx.txt"));//1.创建字符打印流,将将字符流转换为字符打印流+末尾追加PrintWriter pw = new PrintWriter(new FileWriter("xx.txt",true));//2写入数据pw.println("123木头");//3关闭资源pw.close();}
}

3、随机流

1、理解

随机流(RandomAccessFile)是一种特殊的文件流,它允许对文件内容进行随机访问和读写操作

RandomAccessFile是Java中的一个类,它直接继承自Object类,并且同时实现了DataInput和DataOutput接口。这个类提供了支持随机文件操作的方法,不区分输入流和输出流,对文件的访问一定要指定访问方式。通过RandomAccessFile,程序可以直接跳转到文件的任意地方来读写数据,这在网络请求中的多线程下载及断点续传等场景中非常有用。在RandomAccessFile内部,有一个大的字节数组,可以通过指针进行操控。当我们进行随机访问时,让指针指向对应的字节,就可以从当前字节开始读或写。总的来说,随机流是一种非常灵活的文件流,它可以大大提高对文件操作的效率。

2、四种模式

  1. “r” (只读模式)

    :

    • 使用只读模式打开文件,只能对文件进行读取操作,无法修改文件内容。
    • 如果文件不存在,将会抛出FileNotFoundException
    • 调用结果对象的任何write方法都将导致抛出IOException
  2. “rw” (读写模式)

    :

    • 使用读写模式打开文件,允许对文件进行读取和写入操作,并且可以修改文件内容。
    • 如果文件不存在,则尝试创建该文件。
    • 写入操作可能不会被立即同步到底层存储设备,因此在系统崩溃时可能会丢失数据。
  3. “rws” (同步读写模式)

    :

    • 除了具有读写模式的功能外,该模式还要求对文件的内容和元数据的每个更新都同步写入到底层存储设备。
    • 同步更新确保对文件的更改被安全地写入到底层的存储设备中,从而降低了数据丢失的风险。
    • "rws"选项确保内容和元数据(如文件的最近更改时间戳等信息)的持久化。
  4. “rwd” (同步数据读写模式)

    :

    • 与"rws"模式类似,但只要求对“文件的内容”的每个更新都同步写入到基础存储设备,而不要求同步元数据。
    • 这也降低了数据丢失的风险,但可能不如"rws"模式那样全面保护数据。

3、案例

1、利用 随机访问流 将数据写入到文件
package com.xxio08;import java.io.IOException;
import java.io.RandomAccessFile;public class Test01 {/*** 知识点:利用 随机访问流 将数据写入到文件* * 1)写入数字、英文、中文*/public static void main(String[] args) throws IOException {//1.创建流对象//这里创建了一个RandomAccessFile对象w,并指定了文件名为"xx.txt"和访问模式为"rw"(读/写)。如果文件不存在,它将被创建;如果文件已存在,则内容将被覆盖(从文件开始处)。RandomAccessFile w = new RandomAccessFile("xx.txt", "rw");//2.写入数据w.write("123abc木头人".getBytes());//3.关闭资源 w.close();}
}
2、利用 随机访问流 将数据写入到文件
package com.xx.io08;import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;public class Test02 {/*** 利用 随机访问流 将数据写入到文件* * 1)写入数字、英文、中文* 2)在文件末尾追加*/public static void main(String[] args) throws IOException {//1.创建流对象File file = new File("xx.txt");RandomAccessFile w = new RandomAccessFile(file, "rw");//设置指针,文件末尾w.seek(file.length());//2.写入数据w.write("123abc木头人".getBytes());//3.关闭资源w.close();}
}
3、利用 随机访问流 读取文件里的数据
package com.xx.io08;import java.io.IOException;
import java.io.RandomAccessFile;public class Test03 {/*** 知识点:利用 随机访问流 读取文件里的数据* * 1)读取数据*/public static void main(String[] args) throws IOException {//1.创建流对象,										只读RandomAccessFile r = new RandomAccessFile("xx.txt", "r");//2.读取数据byte[] bs = new byte[1024];int len;while((len = r.read(bs)) != -1){System.out.println(new String(bs, 0, len));}//3.关闭资源r.close();}
}
4、利用 随机访问流 读取文件里的数据
package com.qf.io08;import java.io.IOException;
import java.io.RandomAccessFile;public class Test04 {/*** 利用 随机访问流 读取文件里的数据* * 1)读取数据* 2)从英文处开始读取*/public static void main(String[] args) throws IOException {//1.创建流对象					//只读RandomAccessFile r = new RandomAccessFile("xx.txt", "r");//设置指针,从下标为3开始r.seek(3);//2.读取数据byte[] bs = new byte[1024];int len;while((len = r.read(bs)) != -1){System.out.println(new String(bs, 0, len));}//3.关闭资源r.close();}
}
http://www.dinnco.com/news/10124.html

相关文章:

  • 大庆做网站的公司百度网站提交了多久收录
  • 在线做雅思真题网站seo公司广州
  • 做婚纱网站是怎么确认主题怎么制作链接网页
  • [网络收集]form表单及网站开发中常用js表单取值方法培训机构管理系统
  • 桥头镇做网站谷歌外贸网站推广
  • 寻花问柳一家专注做男人喜爱的网站搜索引擎营销的特点有
  • 泊头网站制作b站视频推广网站2023年
  • 云南建设学校网站首页怎么优化网络
  • 做nba直播网站有哪些搜索排行
  • 专业移动网站建设百度游戏风云榜
  • 东莞销售网站公司哪家好宁德seo
  • web网站建设一题库陕西seo排名
  • 数字货币网站开发软文优化
  • 论述电子商务网站的建设艺考培训
  • 在互易上做的网站如何修改论坛seo网站
  • 微小店适合卖做分类网站吗软文写作什么意思
  • 网站建设利益分析实时热榜
  • wordpress文本插件seo百度站长工具查询
  • 四川专业旅游网站制作苏州seo公司
  • wordpress暴力破解seo视频教程汇总
  • wordpress 缩略图类型知乎seo
  • 网站怎么建设上海百度移动关键词排名优化
  • 网站建设中的思想和算法近三年成功的营销案例
  • h5case 网站百度代理合作平台
  • 音乐网站怎么做社交的营销宣传方式有哪些
  • 章丘哪里做网站衡水seo培训
  • 做党政板报的网站北京发生大事了
  • 组建网站开发团队房地产营销策略有哪些
  • 数据库 网站开发所需流程免费优化推广网站的软件
  • 丰台网站建设联系方式aso关键词覆盖优化