JAVA基础要点复习(9)—个人笔记

文件和IO流

1.File类的对象创建和常用方法?
输入输出流是对计算机文件进行操作的java类库。【读写文件数据】
计算机中的文件是由2部分组成
文件的基本属性。【文件的名称,后缀名,修改日期,类型…】【java.io.File类】
文件中的数据。【输入输出流】

对文件的基本属性进行操作
在java中我们通过java.io.File类实现对文件的基本属性进行操作。
java.io.File类
定义:
public class File
extends Object
implements Serializable, Comparable
既然是一个类,那么在使用的时候就需要创建对象。
在这里插入图片描述

import java.io.File;
public class TestMain {
	public static void main(String[] args) {
		//java.io.File类
		//构造方法
		//File(String pathname) 通过String类型的文件的路径和名称创建一个文件对象
		//pathname---需要创建的文件的路径和名称
		String  pathname="F:\\20191015\\test\\mytest.txt";
		String  path="F:/20191015/test/mytest.txt";
		File  file1=new File(pathname);
		File  file2=new File(path);
		//File(String parent, String child) 通过String类型的文件的路径和String类型名称创建一个文件对象
		//String parent---需要创建的文件的路径
		//String child----需要创建的文件的名称
		String parent="F:\\20191015\\test";
		String child="mytest.txt";
		File  file3=new File(parent,child);
		//File(File parent, String child) 通过File类型的文件的路径和String类型名称创建一个文件对象。	
		//File parent---需要创建的文件的路径
		//String child----需要创建的文件的名称
		String stringpath="F:\\20191015\\test";
		File filepath=new File(stringpath);
		String child1="mytest.txt";
		File  file4=new File(filepath,child1);
		//创建出文件对象,并不会得到实际文件。
	}
}

2.Io的划分与区别【字节流与字符流】

按照每一次读写数据的量:
字节流:每一次可以读/写,一个字节,8位2进制数据的量,由于所有的数据都可以转换成字节,因此字节流可以处理任何类型的数据【文本,图片,视频,音频…】
字符流:每一次可以读/写,一个字符,16位2进制数据的量,只能处理文本型数据【word文档,记事本文件】,不能处理图片,视频,音频这些类型的文件。


3.字节输入与字节输出流的类

按照数据的流向:
字节输出流【写出数据】
在java中表示字节输出流使用OutputStream类
OutputStream类是一个抽象类,不能通过new的方式创建对象,需要借助子类来创建对象。
OutputStream抽象类是字节输出流的顶级父类。
FileOutputStream类是OutputStream抽象类的子类。
FileOutputStream类能通过new的方式创建对象。
java.io. FileOutputStream
public class FileOutputStream extends OutputStream

构造方法摘要

FileOutputStream(File file)通过File对象创建一个字节输出流。

参数:File file--指定数据输出位置

 

FileOutputStream(File file, boolean append) 通过File对象创建一个可以追加内容的字节输出流。

参数1File file--指定数据输出位置

参数2boolean append--指定是否追加

 

FileOutputStream(String name) 通过String对象创建一个字节输出流。
参数:String name--指定数据输出位置

 

FileOutputStream(String name, boolean append) 通过String对象创建一个可以追加内容的字节输出流。

参数1String name--指定数据输出位置

参数2boolean append--指定是否追加

 

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

public class TestMain {

	public static void main(String[] args) throws Exception{
		//FileOutputStream的构造方法
		//FileOutputStream(File file)通过File对象创建一个字节输出流。
		//参数:File file--指定数据输出位置	
		File file1=new File("F:"+File.separator+"20191015"+File.separator+"test"+File.separator+"file1.txt");
		FileOutputStream  out1=new FileOutputStream(file1);
		OutputStream  out2=new FileOutputStream(file1);
		//FileOutputStream(File file, boolean append) 通过File对象创建一个可以追加内容的字节输出流。
		//参数1:File file--指定数据输出位置
		//参数2:boolean append--指定是否追加
		File file2=new File("F:"+File.separator+"20191015"+File.separator+"test"+File.separator+"file1.txt");
		FileOutputStream  out3=new FileOutputStream(file2,true);
		OutputStream  out4=new FileOutputStream(file2,true);
		//FileOutputStream(String name) 通过String对象创建一个字节输出流。
		//参数:String name--指定数据输出位置	
		String path1="F:"+File.separator+"20191015"+File.separator+"test"+File.separator+"file1.txt";
		FileOutputStream  out5=new FileOutputStream(path1);
		OutputStream  out6=new FileOutputStream(path1);
		//FileOutputStream(String name, boolean append) 通过String对象创建一个可以追加内容的字节输出流。
		//参数1:String name--指定数据输出位置
		//参数2:boolean append--指定是否追加	
		String path2="F:"+File.separator+"20191015"+File.separator+"test"+File.separator+"file1.txt";
		FileOutputStream  out7=new FileOutputStream(path2,true);
		OutputStream  out8=new FileOutputStream(path2,true);
		//只要创建出输出流对象,那么输出流就会自动去创建这个不存在的文件
	}
}

通过输出流对象写出数据:

 void

write(byte[] b)将字节数组中的所有数据全部写出到字节输出流中。

 void

write(byte[] b, int off, int len) 将字节数组中的从off开始len个数据写出到字节输出流中。。

 void

write(int b) 将一个字节的数据写出到字节输出流中。

 void

close()  关闭字节输出流

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

public class TestMain {

	public static void main(String[] args) throws Exception{
		// void	write(byte[] b)将字节数组中的所有数据全部写出到字节输出流中。
		//定义一个需要被写出的数据
		String info="world";
		//创建字节输出流对象
		//FileOutputStream(File file, boolean append) 通过File对象创建一个可以追加内容的字节输出流。
		//参数1:File file--指定数据输出位置
		//参数2:boolean append--指定是否追加
		File file2=new File("F:"+File.separator+"20191015"+File.separator+"test"+File.separator+"file1.txt");
		FileOutputStream  out3=new FileOutputStream(file2,true);
		//OutputStream  out4=new FileOutputStream(file2,true);
		//将String转换成byte[]
		byte bytearray[]=info.getBytes();
		//调用写方法,写出数据
		out3.write(bytearray);
		//关闭字节输出流
		out3.close();
	}
}


import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

public class TestMain {

	public static void main(String[] args) throws Exception{
		//void	write(byte[] b, int off, int len)将字节数组中的从off开始len个数据写出到字节输出流中。。
		//定义一个需要被写出的数据
		String info="worldhello";
		//创建字节输出流对象
		//FileOutputStream(File file, boolean append) 通过File对象创建一个可以追加内容的字节输出流。
		//参数1:File file--指定数据输出位置
		//参数2:boolean append--指定是否追加
		File file2=new File("F:"+File.separator+"20191015"+File.separator+"test"+File.separator+"file1.txt");
		FileOutputStream  out3=new FileOutputStream(file2,true);
		//OutputStream  out4=new FileOutputStream(file2,true);
		//将String转换成byte[]
		byte bytearray[]=info.getBytes();
		//调用写方法,写出数据
		out3.write(bytearray,5,5);
		//关闭字节输出流
		out3.close();
	}
}


import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

public class TestMain {

	public static void main(String[] args) throws Exception{
		// void	write(int b) 将一个字节的数据写出到字节输出流中。
		//定义一个需要被写出的数据
		String info="-world";
		//创建字节输出流对象
		//FileOutputStream(File file, boolean append) 通过File对象创建一个可以追加内容的字节输出流。
		//参数1:File file--指定数据输出位置
		//参数2:boolean append--指定是否追加
		File file2=new File("F:"+File.separator+"20191015"+File.separator+"test"+File.separator+"file1.txt");
		FileOutputStream  out3=new FileOutputStream(file2,true);
		//OutputStream  out4=new FileOutputStream(file2,true);
		//将String转换成byte[]
		byte bytearray[]=info.getBytes();
		for(byte by:bytearray){
		//调用写方法,写出数据
		out3.write(by);
		}
		//关闭字节输出流
		out3.close();
	}
}

4.字符输入与字符输出流的类

在java中通过Writer类表示字符输出流。
Writer类是一个抽象类,不能通过new的方式构造对象,需要借助子类完成对象创建。
Writer这个抽象类是字符输出流的顶级父类
FileWriter类是Writer抽象类的子类。
java.io FileWriter
public class FileWriter extends OutputStreamWriter
OutputStreamWriter 继承了 Writer
FileWriter 简介继承 Writer

构造方法摘要

FileWriter(File file) 通过File对象创建一个字符输出流对象。

File file---指定输出位置

 

FileWriter(File file, boolean append)通过File对象创建一个可以追加的字符输出流对象。

File file---指定输出位置

boolean append---指定是否追加

 

FileWriter(String fileName) 通过String对象创建一个字符输出流对象。

String fileName---指定输出位置。

 

FileWriter(String fileName, boolean append)通过String对象创建一个可以追加的字符输出流对象。

String fileName---指定输出位置

boolean append---指定是否追加

 

import java.io.File;
import java.io.FileWriter;
import java.io.Writer;

public class TestMain {

	public static void main(String[] args) throws Exception{
		//FileWriter构造方法
		//FileWriter(File file) 通过File对象创建一个字符输出流对象。
		//File file---指定输出位置	
		File file1=new File("F:"+File.separator+"20191015"+File.separator+"test"+File.separator+"myfile.txt");
		FileWriter  writer1=new FileWriter(file1);
		Writer  writer2=new FileWriter(file1);
		//FileWriter(File file, boolean append)通过File对象创建一个可以追加的字符输出流对象。
		//File file---指定输出位置
		//boolean append---指定是否追加	
		File file2=new File("F:"+File.separator+"20191015"+File.separator+"test"+File.separator+"myfile.txt");
		FileWriter  writer3=new FileWriter(file2,true);
		Writer  writer4=new FileWriter(file2,true);
		//FileWriter(String fileName) 通过String对象创建一个字符输出流对象。
		//String fileName---指定输出位置。	
		String path1="F:"+File.separator+"20191015"+File.separator+"test"+File.separator+"myfile.txt";
		FileWriter  writer5=new FileWriter(path1);
		Writer  writer6=new FileWriter(path1);
		//FileWriter(String fileName, boolean append)通过String对象创建一个可以追加的字符输出流对象。
		//String fileName---指定输出位置
		//boolean append---指定是否追加	
		String path2="F:"+File.separator+"20191015"+File.separator+"test"+File.separator+"myfile.txt";
		FileWriter  writer7=new FileWriter(path2,true);
		Writer  writer8=new FileWriter(path2,true);
	}
}

字符输入流
在java中通过Reader类表示字符输入流。
Reader这个类是一个抽象类,不能new,需要子类。
Reader这个类是一个抽象类字符输入流的顶级父类。
FileReader类就是Reader类的子类。
java.io FileReader
public class FileReader extends InputStreamReader
InputStreamReader继承Reader类
FileReader间接继承Reader类

构造方法摘要

FileReader(File file) 通过File对象创建一个字符输入流对象

 

FileReader(String fileName) 通过String对象创建一个字符输入流对象

 

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

public class TestMain {

	public static void main(String[] args) throws Exception{
		//FileReader 构造方法
		//FileReader(File file) 通过File对象创建一个字符输入流对象
		File file1=new File("F:"+File.separator+"20191015"+File.separator+"test"+File.separator+"myfile.txt");
		FileReader  reader1=new FileReader(file1);
		Reader  reader2=new FileReader(file1);
		//FileReader(String fileName) 通过String对象创建一个字符输入流对象
		String path1="F:"+File.separator+"20191015"+File.separator+"test"+File.separator+"myfile.txt";
		FileReader  reader3=new FileReader(path1);
		Reader  reader4=new FileReader(path1);
	}
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值