首页 > 编程语言 > 详细

JAVA IO流中一些常用的流 (●ω●)

时间:2020-07-02 00:37:10      阅读:71      评论:0      收藏:0      [点我收藏+]

 

JAVA  IO 流(2)


 

文件字符输入流  FileReader

java.lang.Object
  技术分享图片java.io.Reader
      技术分享图片java.io.InputStreamReader      转换流(字节输入流===>字符输入流)
          技术分享图片java.io.FileReader

public class FileReaderTest {
    public static void main(String[] args) throws Exception {
FileReader fileReader
=new FileReader(new File(filePath)); char[] chars=new char[1024]; int temp=0; while ((temp=fileReader.read(chars))!=-1) { System.out.print(new String(chars,0,temp)); } fileReader.close(); } }

 

文件字符输出流 FileWriter

java.lang.Object
  技术分享图片java.io.Writer
      技术分享图片java.io.OutputStreamWriter   转换流(字节输出流===>字符输出流)
          技术分享图片java.io.FileWriter

public class FileWriterText{
public static void main(String args[]) throws Exception{
//FileWriter filewriter=new FileWriter(new file(filePath),true);追加
Filewriter filewriter=new FileWriter(new File(filePath));//覆盖
filewriter.write("装饰者模式");
char[] chars=new char[]{‘抽‘,‘像‘,‘类‘};
filewriter.write(chars,0,3);
filewriter.flush();
filewriter.close();
}
}

 

 


 

利用文件字符流复制文件

 

public class CopyText{
public static void main(String args[]) throws Exception{
FileWriter filewriter=new FileWriter(FileName2);
FileReader filereader=new FileReader(fileName1);
char[] chars=new char[1024];
int temp=0;
while((temp=filereader.read(chars))!=-1)
filewriter.write(chars,1,temp)
filewriter.flush();
filewriter.close();
filereader.close();
}
}

 

  • 只能复制纯文本文件

 

 


 

带有缓冲区的字符输入流及转换流

BufferedReader   

java.lang.Object
  技术分享图片java.io.Reader
      技术分享图片java.io.BufferedReader 

InputStreamReader

java.lang.Object
  技术分享图片java.io.Reader
      技术分享图片java.io.InputStreamReader

 

 

 

public class BufferedReaderText{
public static void main(String arg[]){
BufferedReader bufferedreader=new BufferedReader(new InputStreamReader(new FileInputStream(new File(filePath)),"utf-8"));
String temp=null;
//readLine()方法每次读取一行,行尾不带换行符
while((temp=bufferedreader.readLine())!=null){
System.out.println(temp);
bufferedreader.close();//只需关闭最外层的流(装饰者模式)
}
}
}

 

 


 

 

带有缓冲区的字符输出流及转换流 

BufferedWriter

java.lang.Object
  技术分享图片java.io.Writer
      技术分享图片java.io.BufferedWriter

OutputStreamWriter

java.lang.Object
  技术分享图片java.io.Writer
      技术分享图片java.io.OutputStreamWriter

public class BefferedWriterText{
    public static void main(String[] args) throws IOException {
BufferedWriter bufferedwriter=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(filePath),true),"utf-8"));
bufferedwriter.write("接口")
bufferedwriter.newLine();//插入一个行分隔符
bufferedwriter.write("抽象类")
bufferedwriter.write(new char[] {‘亘‘,‘古‘,‘匆‘,‘匆‘},0,4); bufferedwriter.flush(); bufferedwriter.close();//只需关闭最外层的流(装饰者模式) } }

数据字节输入流及输出流 

DataInputStream 

java.lang.Object
  技术分享图片java.io.InputStream
      技术分享图片java.io.FilterInputStream
          技术分享图片
java.io.DataInputStream

DataOutputStream

java.lang.Object
  技术分享图片java.io.OutputStream
      技术分享图片java.io.FilterOutputStream
          技术分享图片java.io.DataOutputStream

public class Io10 {
public static void main(String args[]) throws Exception{
    method01();
    method03();
}
private static void method03() throws Exception{
    DataInputStream datainputstream=new DataInputStream(new FileInputStream(filePath));
    byte by=datainputstream.readByte();
    short sh=datainputstream.readShort();
    int i=datainputstream.read();
    long l=datainputstream.readLong();
    double d=datainputstream.readDouble();
    float f=datainputstream.readFloat();
    char c=datainputstream.readChar();
    boolean b=datainputstream.readBoolean();
    System.out.println(by);
    System.out.println(sh);
    System.out.println(i);
    System.out.println(l);
    System.out.println(d);
    System.out.println(f);
    System.out.println(c);
    System.out.println(b);    
    datainputstream.close();    
}
private static void method01() throws Exception{
DataOutputStream dataoutputstream=new DataOutputStream(new FileOutputStream(filePath));    
    byte by=-128;
    short sh=12345;
    int i=10;
    long l=1564853415421524156L;
    double d=12.2d;
    float f=5.5f;
    char c=‘a‘;
    boolean b=true;    
    dataoutputstream.writeByte(by);
    dataoutputstream.writeShort(sh);
    dataoutputstream.write(i);
    dataoutputstream.writeLong(l);
    dataoutputstream.writeDouble(d);
    dataoutputstream.writeFloat(f);
    dataoutputstream.writeChar(c);
    dataoutputstream.writeBoolean(b);
    dataoutputstream.write(bytes);
    dataoutputstream.flush();
    dataoutputstream.close();    
}
}
  • 用DataInputStream 写入一个类型的数据,用 DataOutputStream读出数据时可以保持类型不变。
  • 数据流特点:

 

  1. 写入是什么类型的数据,读出是相应类型的数据;
  2. 要先写后读;用 DataOutputStream 流写,用 DataInputStream 流读;

 

 

技术分享图片

 

 

0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0..0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0

 

JAVA IO流中一些常用的流 (●ω●)

原文:https://www.cnblogs.com/520-hahaha/p/13222324.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!