您的位置 首页 java

Java互联网架构-解读分布式架构通信基础IO字节流

欢迎关注头条号: Java 小马哥

周一至周日早九点半!下午三点半!精品技术文章准时送上!!!

精品学习资料获取通道,参见文末

字节输出流:

java. io .OutputStream : 抽象类 ,是表示输出字节流的所有类的父类。

java.io. file OutputStream extends OutputStream: 文件字节输出流。

作用:把内存中的数据写入硬盘文件。

构造方法 : FileOutputStream(String name),创建一个向指定名称的文件写入数据的输出流。

FileOutputStream(File file) ,创建一个向指定File对象的文件中写入数据的输出流。

构造方法的作用:1、创建一个FileOutputStream对象。

2、根据构造方法中的文件/文件路径,创建一个空文件。

3、把FileOutputStream 对象指向该文件。

使用步骤:1、创建FileOutputStream对象。2、write方法写数据。3、释放资源。

write方法:

public class main {

public static void main(String[] args) throws IOException {

File file=new File(“C:\Users\天\Desktop\a.txt”);

FileOutputStream fos=new FileOutputStream(file);

fos.write(12);

fos. close ();

}

}

public class main {

public static void main(String[] args) throws IOException {

File file=new File(“C:\Users\天\Desktop\a.txt”);

FileOutputStream fos=new FileOutputStream(file);

byte [] bytes ={65,66,67};

fos.write(bytes);

fos.close();

}

}

续写和换行写:

续写构造函数:FileOutputStream(String name / File file,boolean append)

append: 续写开关,true 。。。false。。。

换行符号: Windows : rn fos.write(“rn”)

字节输入流:

java.io.InputStream :字节输入流,抽象类,是表示字节输入流的所有类的父类。

java.io. FileInputStream extends InputStream.把磁盘文件读入内存。

构造方法:FileInputStream(String name) FileInputStream(File file)

构造方法作用:1、创建对象,2、把对象指向要操作的文件

使用步骤:1、创建对象。2、read() 3、释放资源。

read() 后 ,指针自动指向下一字节, 结束标记为-1.

一次读取多个字节:

int read(byte[] b) ,从输入流读取一定数量的字节,并存在缓冲区数组b中。

返回的是实际读取到的字节数。

字节流练习:

复制文件:

public static void main(String[] args) throws IOException {

File file =new File(“C:\Users\天\Desktop\a.txt”);

File file1 =new File(“C:\Users\天\Desktop\b.txt”);

FileInputStream fis=new FileInputStream(file);

FileOutputStream fos=new FileOutputStream(file1,true);

byte[] bytes=new byte[2];

int len;

while ((len=fis.read(bytes))!=-1){

fos.write(bytes);

}

fos.close();

fis.close();

}

字符流:

读取中文字符时,由于编码问题,可能会出错,所以,Java提供专门处理文本文件的字符流类。

字符输入流:

java.io.Reader :抽象类,是所有字符输入流的父类。

java.io.FileReader extends InputStreamReader extend Reader.

FileReader: 文件字符输入流,把硬盘文件的数据以字符流的方式读入内存。

构造方法:FileReader(String fileName / File file )

构造方法作用:1、创建FileReader对象。2、指向要读取的文件。

字符输出流:

java.io.Writer: 抽象类, 所有字符输出流的父类。

java.io.FileWriter extends OutputStreamWriter extends Writer.

FileWriter: 文件字符输出流

构造方法:FileWriter(String fileName / File file)

注意:使用write()时,是把数据写入内存缓冲区先,flush()或释放资源时会刷新到文件中。

flush 和 close区别:

flush:刷新缓冲区,流对象可继续使用。close:刷缓冲区后释放资源,流对象不可使用。

字符输出流写数据的其他方法:

void write (char[ ] c) 写入字符数组。

abstract void write (char[ ] c, int off, int len)

void write( String str) 写入字符串。

void write ( String str,int off, int len ) ..

流中异常的处理:

JDK1.7 新特性:

try后可以增加个(),里面可以定义流对象,这个流对象的作用域在try中有效,try执行完后,自动释放。

public static void main(String[] args) {

File file =new File(“C:\Users\天\Desktop\a.txt”);

try (FileWriter fw=new FileWriter(file);){

fw.write(98);

fw.close();

}catch (IOException e){

System.out.println(e);

}

}

JDK9 新特性:

在try前面定义流对象, ()里引入流对象名称 ,try代码结束后,也能释放,不用写finally。

封面图源网络,侵权删除)

私信头条号,发送:“资料”,获取更多“秘制” 精品学习资料

如有收获,请帮忙转发,您的鼓励是作者最大的动力,谢谢!

一大波微服务、分布式、高并发、高可用的原创系列文章正在路上,

欢迎关注头条号:java小马哥

周一至周日早九点半!下午三点半!精品技术文章准时送上!!!

十余年BAT架构经验倾囊相授

文章来源:智云一二三科技

文章标题:Java互联网架构-解读分布式架构通信基础IO字节流

文章地址:https://www.zhihuclub.com/188371.shtml

关于作者: 智云科技

热门文章

网站地图