黑马程序员——java基础之IO流

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

IO流

IO(Input Output)流用来处理设备之间的数据传输。
java对数据的操作是通过流的方式。
java用于操作流的对象都在IO包中。
流按操作数据分为两种:字节流与字符流。
流按流向分为:输入流,输出流。

IO分为字符流和字节流。
字节流两个基类:InputStream  OutputStream
字符流两个基类:Reader   Writer

注意:由这四个类派生出来的子类名称都是以其父类名作为子类名后缀。如:InputStream的子类FileInputStream.
_________________________________________________________________________________
System:类中的方法和属性都是静态的。
out:标准输出,默认是控制台。
in:标准输入,默认是键盘。

描述系统一些信息,获取系统属性信息:Properties getProperties();

Runtime:将java运行程序和运行环境相连接的类
它没有构造函数,它不可以new对象,
static Runtime getRuntime();它使用了单利设计模式

Date:日期类将模式封装到 SimpleDateFormat对象中。

Math数学类。数学方法。
__________________________________________________________________________________
字符流有:FileWriter和FileReader
它的缓冲区是:BufferedReader 和BufferedWriter
字节流有:InputStream 和OutputStream
它的缓冲区是:BufferedInputStream和BufferedOutputStream

字符串缓冲区
BufferedReader和BufferedWriter缓冲区的出现是为了提高流的操作效率而出现的。
所以在创建缓冲区之间,必须要先有流对象。

BufferedWriter该缓冲区中提供了一个跨平台的换行符:newLine();

字符读取流缓冲区BufferedReader该缓冲区提供了一个一次读一行的方法:readLine();
方便于对文本数据的获取。
当返回null时,表示读到文件末尾。
readLine()方法返回的时候只返回回车符之前的数据内容,并不返回 回车符。
readLine()方法的原理:无论是读一行,或读取多个字符,其实最终都是在硬盘上一个一个读取。
所以最终使用的还是read方法一次读一个的方法

File类
①创建
    boolean createNewFile():在指定位置创建文件,如果该文件已存在,则不创建,返回false 和输出流不一样,输出流对象一建立,而且文件存在的话会被覆盖。
    boolean mkdir():创建文件夹
    boolean mkdirs():创建多级文件夹
删除
    boolean delete();删除失败,返回false
    void deleteOnExit():在程序退出时,删除指定文件
判断
    boolean exists():文件是否存在。
    boolean isFile():判断是否是文件夹
    boolean isDirectory():判断是否是文件
    boolean isHidden():文件是否是一个隐藏文件
    boolean isAbsolute():判断路径是否是绝对。
获取信息
    String getName():获取名称
    String getPath():获取封装的路径
    String getParent():如果封装没有加上路径,就会null,它返回是绝对路径中父目录
    String getAbsolutePath():获取绝对路径
    long lastMidified():路径最后一次修改时间
    long length():文件的长度

public class File {

	public void fileread() throws IOException{
		FileReader fir = new FileReader("fi.txt");
		char[] ch = new char[1024];
		int num = 0;
		while((num=fir.read(ch))!=-1){
			System.out.println(new String(ch,0,num));
		}
		fir.close();
	}
	public static void main(String[] args) throws IOException {
		
		//FileWriter fi = new FileWriter("fi.txt");
		//fi.write("1123");//将数据写入流中
		//fi.flush();//将数据刷到目的地
		//fi.close();//关闭流资源,流不能再使用
		FileWriter fi = null;
		try{
			fi = new FileWriter("fi.txt");
			fi.write("1123");
		}catch(IOException e){
			System.out.println(e.toString());
		}finally{
			try{
				if(fi != null);
				fi.close();
			}catch(IOException e){
				System.out.println(e.toString());
			}
		}
		File f = new File();
		f.fileread();
	}

}

打印流:
该流提供了打印方法,可以将各种数据类型的数据都原样打印

字节打印流PrintStream
构造函数可以接收的参数类型。 
1.file对象。File 
2.字符串路径。String 
3.字节输出流。OutputStream

字符打印流PrintWriter
构造函数可以接收的参数类型。 
1.file对象。File 
2.字符串路径。String 
3.字节输出流。OutputStream 
4.字符输出流。Writer

合并流:将多个流合并成一个流
切割流:将一个流切割成多个流

你可能感兴趣的:(黑马程序员——java基础之IO流)