Java学习记录(IO流篇)

1:核心类

说明
File文件类
InputString字节输入流
OutputString字节输出流
Reader字符输入流
Writer字符输出流
Closeable关闭流接口
Flushable刷新流接口
Serializable序列化接口

2:File.

Constructor描述
File(File parent , String child)从父抽象路径和自路径名字符串创建的File实例
File(String pathname)通过将给定的路径名字符串换为抽象路径来创建新的File实例
File(String parent , String child)从父路径名字符串和子路径名字符串创建新的File实例
File(URI uri)通过将给定的file:URI转换为路径名来创建新的File实例

例:构建File对象的三种方法

String path = "D:/text/text.txt";  //建议使用"/"
		//构建File对象,方法一:
		File scr = new File(path);
		System.out.println(scr.length());
		//方法二:
		scr = new File("D:/text","text.txt");
		System.out.println(scr.length());
		//方法三:
		scr = new File(new File("D:/text"),"text.txt");
		System.out.println(scr.length());

/**运行结果: 20
 *           20     
 *           20
 */

3:API的使用

API说明
pathSeparator路径|路径分隔符

File(String parent,String chile)

File(File parent, String child)

File(String name)

构造器

没有盘符以user.dir作为相对目录

getName()    getPath()

getAbsolutePath()

getParent()

文件名、路径名

exists()  isFile()   isDirectory()判断状态
length()文件长度
createNewFile()   delete()创建新文件,删除文件
mkdir()        mkdirs()创建目录,如果父目录链不存在一同创建
list()下级名称
listFiles下级File
listRoots根目录

  1. 字节流
  1. 定义:二进制数据,最基本的单元字节。
  2. 类型:所有文件,一般图片、音频、视频等文件类型,不支持Unicode码元读写。
  3. 字节流操作中输入流祖先:InuptStream抽象类。

字节流操作中输入流祖先:OutputStream抽象类

怎么读写字节流:

      最常用的处理输入流类:FileInputStream【读文件里面——二进制数据】

                               读控制台中输入的数据:System.in对象

      最常用的处理输出流类:FileOutputStream

                               写到控制台:System.out对象

  1. 注意:字节流在默认的操作下不支持缓存,意味着每调用一次read方法都会请求操作系统读取一个字节,伴随着磁盘进行一次IO,效率低,一定要求加缓存区,BufferedInputStream(FileleInputStream)、BufferedOutputStream(FileOutputStream)
  1. 字符流
  1. 定义:Unicode码元(2个字节|一个字符),通常处理的都是一些文本数据。
  2. 类型:.txt  .doc  ……..
  3. 常用类:

字符流操作中的输入流祖先:Reader抽象类

字符流操作中的输出流祖先:Writer抽象类

责编呢读写字符流:

最常用的处理输入流类:FileReader

              读控制台也可以读文件中的字符数据Scanner类

                            New Scanner(System.out)

                            File f =new File(“d://aa.txt”);

                            New Scanner(f);

最常用的处理输出流类:FileWrite

              输出值控制台也可以输出至文件PrintWrite类【自带缓存】

                            New PrintWrite(System.in);

                            File f = new File(“d://aa.txt”);

                            New PrintWrite(f);

  1. 注意:字符流在默认的操作下不支持缓存,意味着每调用一次rea方法都会请求操作系统读取一个字节,伴随着磁盘进行一次IO,小留底,一定要求加缓冲区,BufferedReader(FileReader)、BufferedWriter(FileWrite)
  1. 字节与字符的转换

inputStreamReader:将InputStream中读入的字节流转为字符流

例:

//控制台输入字符,并写入文件
	public static void rw1() throws IOException {
		File f = new File("d://aaa.txt");
		FileOutputStream fos = new FileOutputStream(f);
		BufferedOutputStream bos = newBufferedOutputStream(fos);
		byte[] b = new byte[1024];
		int count = System.in.read(b);
		bos.write(b);
		bos.close();
		fos.close();
	}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值