java IO

       javaIO即java的输入输出系统,其实不论哪种编程语言平时难免会经常遇到和输入输出媒介打交道,其实自己对javaIO里面的各种类看过后也是头大,内容比较多,但细细看过之后其实都存在这一定的规律,由于能力暂且有限,怕说深了误导,在这里只简单的说下常用的javaIO。

        javaIO 从两个维度去了解 1.流类型:字节流(InputStream,OutputStream),字符流(Reader,Writer) 2.读写类型:输入流(InputStream,Reader),输出流(OutputStream,Writer);以上看到的InputStream ,OutputStream,Reader,Writer这四个类是javaIO的抽象类,很多具体的操作类都继承这四个抽象类。请看下图:


下面简单说下几个常用javaIO的基本用法:

1.字节流(InputStream,OutputStream)平时根据操作的媒介不同,选用相应的子类来进行操作例如下面来操作一下文件

emp1.用字节流写文件:

import java.io.OutputStream;
public class FIleIo {
	public static void main(String [] args) throws IOException{
		String aString=new String("Hello javaIO!");
		//将字符串转为字节码放入数组中
		byte[] b=aString.getBytes();
		//磁盘总建一个文本文件
		File file =new File("F:\\Io.txt");
		//创建文本文件file的输出字节流的对象
		OutputStream outputStream=new FileOutputStream(file);
		try {
			//将数组字节码写入输出字节流对象,至此结束,磁盘上将出现一个带有所写入内容的文本文件
			outputStream.write(b);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

emp2.用字节流读文件:

package com.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class FIleIo {
	public static void main(String[] args) throws IOException {
		//将磁盘中的文本文件创建作为file对象
		File file = new File("F:\\Io.text");
		//将file对象转换为一个字节码数组对象
		byte[] bArray = new byte[(int) file.length()];
		//创建file文件对象的的输入字节流
		InputStream iStream = new FileInputStream(file);
	    //读取文件字节流对象的大小
		int size = iStream.read(bArray);
	    //输出读取信息
		System.out.println("大小:" + size + ";内容:" + new String(bArray));
		iStream.close();
	}
}

2.字符流(Reader,Writer)以下例子同样是对一个文件进行操作,你会发现基本很相似:

emp3.用字符流写文件:

package com.test;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

public class FIleIo {
	public static void main(String[] args) throws IOException{
		String sr=new String("Hello IOfile1");
		//在磁盘上创建一个file的文本文件对象
		File file=new File("F:\\Iofile1.txt");
		//直接创建一个文件的字符输出流对象
		Writer wr=new FileWriter(file);
		wr.write(sr);
                 wr.close();
	}
}

emp4.用字符流读文件:

package com.test;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

public class FIleIo {
	public static void main(String[] args) throws IOException {
		File file = new File("F:\\Iofile1.txt");
		// 将文件对象转换为字符数组
		char[] chArray = new char[(int) file.length()];
		Reader re = new FileReader(file);
		int size = re.read(chArray);
		System.out.println("大小是:" + size + "内容是:" + new String(chArray));
	}
}

emp5.字节流转换为字符流

package com.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;

public class FIleIo {
	public static void main(String[] args) throws IOException {
		File file=new File("F:\\Iofile1.txt");
		InputStream inputStream=new FileInputStream(file);
		Reader reader=new InputStreamReader(inputStream);
		char[] chaArray=new char[(int)file.length()];
		int size=reader.read(chaArray);
		System.out.println("大小是:"+size+"内容是:"+new String(chaArray));
	}
}

3.将装饰的字节字符流BufferReader,BufferWriter和BufferInputStream和BufferOutputStream 将上一个buffer装饰速度快些

emp6.用BufferReader去读文件

package com.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;

public class FIleIo {
	public static void main(String[] args) throws IOException {
		File file=new File("F:\\Iofile1.txt");
		Reader reader=new BufferedReader(new FileReader(file),1024*2);
		char[] chaArray=new char[(int)file.length()];
		int size=reader.read(chaArray);
		System.out.println("大小是:"+size+"内容是:"+new String(chaArray));
	}
}

以上文章内容基本是参考下面这位博主的,他总结的很全面,很好。接下来继续深入学习!

https://blog.csdn.net/suifeng3051/article/details/48344587
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值