美文网首页
java基础-IO流

java基础-IO流

作者: 木木郡主 | 来源:发表于2020-11-23 21:03 被阅读0次
IO流.png

字节流

FileOutputStream

1、向文件中写入字符'a','b','c'

//创建输出流对象,如果目的文件不存在,程序会自动创建(前提是文件父目录必须存在)
OutputStream out = new FileOutputStream("d:/test/a.txt");
//
OutputStream out = new FileOutputStream("d:/test/a.txt",true);
out.write(97);
out.write(98);
out.write(99);
byte[] bytes = "abc".getBytes();
out.write(bytes);
byte[] bytes1 = "abcdefg".getBytes();
out.write(bytes,0,3);
FileInputStream

读取文件内容

int ch;
while ((ch = in.read()) != -1) 
{    System.out.println(ch);
}
byte[] bytes2 = new byte[3];
int len;
while ((len = in.read(bytes)) != -1) {   
    String str = new String(bytes,0,len);    
    System.out.println(str);
}

综合应用:复制文件
需求,将a.txt中的内容复制到b.txt中

核心步骤:

方式一:一次读写一个字节

InputStream in = new FileInputStream("d:/test/a.txt");
OutputStream out = new FileOutputStream("d:/test/g.txt");
int ch;
while ((ch = in.read()) != -1) {
out.write(ch);
 }
in.close();
out.close();

方式二:一次读写一个字节数组

InputStream in = new FileInputStream("d:/test/a.txt");
OutputStream out = new FileOutputStream("d:/test/g.txt");
byte[] bytes = new byte[1024];
int len;
while ((len = in.read(bytes)) != -1) {    
    String str = new String(bytes,0,len);
    System.out.println(str);
}
in.close;
out.close;
高效字节流

BufferedInputStream

BufferedInputStream

字节缓冲流仅仅提供缓冲区,真正的底层的读写数据还是需要基本流对象进行操作,区别仅仅在定义对象时不同

//创建字节缓冲流输入对象
BufferedInputStream  bfin = new BufferedInputStream(new FileInputStream("d:/test/a.txt"));

//创建字节缓冲流输出对象
BufferedOutputStream bfout = new BufferedOutputStream(new FileOutputStream("d:/test/c.txt"));

字符流

普通字符流 FileReader 和FileWriter

字符流操作和字节流操作相似,只是操作的是字符

一次读取一个字符

一次读取一个字符数组

//用普通字符流把一个文件中的内容读取到另一个文件中
FileReader fr = new FileReader("d:/test/a.txt");
FileWriter fw = new FileWriter("d:/test/q.txt");
char[] chars = new char[1024];
int len;
while ((len = fr.read(chars)) != -1) {    
fw.write(chars,0,len);
}
fr.close();
fw.close();
高效字符流
BufferedReader br = new BufferedReader(new FileReader("d:/test/a.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("d:/test/r.tex"));
//写入内容
bw.write("用于亮剑");
bw.newLine();   // 换行
bw.write("绝不后退");
//读取-写入
int ch = 0;
while ((ch = br.read()) != -1) {   
    bw.write(ch);
}
//特有读取方法 一次读取一行
String line = null;
while((line = br.readLine()) != null) {   
    bw.write(line);
}

相关文章

  • java IO入门笔记

    1.java IO流的概念,分类,类图 1.1. java IO 流的概念 java的io是实现输入和输出的基础,...

  • Java IO详解

    1 Java IO流的概念,分类 1.1 Java IO流的概念 java的IO是实现输入和输出的基础,可以方便的...

  • java基础之IO流

    IO流上:概述、字符流、缓冲区(java基础) IO流结构图 FilterInputStream、FilterOu...

  • Java之IO流详解

    title: Java之IO流详解tags: Java IO流categories: Java IO流 大多数应用...

  • Java基础之IO流

    ##Java基础之IO流IO流常用几个类的关系如下: 字节流 字节输入流FileInputStream 读取文件用...

  • Java基础——流(IO)

    流(Stream)——水流 ,可以理解为连接文件和程序的东西,Stream是从起源(source)到接收(sink...

  • Java 基础 IO流

    文章转载自http://wentao365.iteye.com/blog/1374731 字节流和字符流区别? 方...

  • java基础io流

    一、背景介绍 Java中I/O流是一种计算机用语。而I/O问题可以说是Web应用中所面临的主要问题之一,因为在这个...

  • Java基础-IO流

    流的原理在Java程序中,对于数据的输入/ 输出操作以“流” (stream) 方式进 行;J2SDK提供了各种...

  • 【Java基础】- IO流

    IO流简介 IO流 用于设备间进行数据传输的操作。 IO流可以分为字节流和字符流,也可以分为输入流和输出流。 字符...

网友评论

      本文标题:java基础-IO流

      本文链接:https://www.haomeiwen.com/subject/tczviktx.html