一、输入与输出的概念
是指程序与外部设备或其他计算机进行交互的操作;
Java把这些输入与输出操作用流来实现,通过统一的接口来表示,从而使程序设计更为简单;
入还是出是相对于内存来说的;
把数据读到内存中,称为输入,即input,进行数据的read操作;
从内存往外部设备写数据,称为输出,即output,进行数据的write操作。
二、File类
1、File类的概念
File类是java.io包中很重要的一个类;
File类的对象可以表示文件,还可以表示目录,在程序中一个File类对象可以代表一个文件或目录;
File对象可以对文件或目录的属性进行操作,如:文件名、最后修改日期、文件大小等;
File对象无法操作文件的具体数据,即不能直接对文件进行读/写操作。
2、File的构造方法..
File类的构造方法有4种重载方式,常用的如下:
如://在当前目录下创建一个与aaa.txt文件名相关联的文件对象
File f1 = new File("aaa.txt");
//指明详细的路径以及文件名,请注意双斜线或用反斜杠
File f2 = new File("D:\\Java\\Hello.java");
//指明详细的路径以及目录名,请注意双斜线
File f3 = new File("D:\\Java");
三、输入流与输出流
1、流按着数据的传输方向分为:
-输入流:往内存中读叫输入流;
-输出流:从内存中往外写叫输出流。
2、所有输入流都是InputStream类或者Reader类的子类
-类名以InputStream结尾的类都是InputStream的子类;
-类名以Reader结尾的类都是Reader类的子类。
3、所有输出流都是OutputStream类或者Writer类的子类
-类名以OutputStream结尾的类都是OutputStream的子类;
-类名以Writer结尾的类都是Writer类的子类。
四、字节流与字符流.
1、从数据流编码格式上划分为
-字节流
-字符流
2、InputStream和OutputStream的子类都是字节流
-可以读写二进制文件,主要处理音频、图片、歌曲、字节流,处理单元为1个字节。
3、Reader和Writer的子类都是字符流
-主要处理字符或字符串,字符流处理单元为2个字节;
-字节流将读取到的字节数据,去指定的编码表中获取对应文字。
4、字节流中常用类
-字节输入流 FileInputStream
-字节输出流 FileOutputStream
5、字符流中常用类
-字符输入流 FileReader
-字符输出流 FileWriter
五、字节流与字符流的转换
1、转换流的由来
-字符流与字节流之间的桥梁
-方便了字符流与字节流之间的操作
2、转换流的应用
-字节流中的数据都是字符时,转成字符流操作更高效
3、字节流转换成字符流的桥梁
-InputStreamReader
InputStreamReader(InputStream in)
InputStreamReader(InputStream in, String charsetName)
-OutputStreamWriter
OutputStreamWriter(OutputStream out)
OutputStreamWriter(OutputStream out, String charsetName)
它读入字节,并根据指定的编码方式,将之转换为字符流。
使用的编码方式可能由名称指定,或平台可接受的缺省编码方式。
六、scanner类
Scanner类位于java.util包中,不在java.io包中,不属于IO流
Scanner是一个工具类,主要目标是简化文本的扫描,最常使用此类获取控制台输入
Scanner获取控制台输入的步骤
1、使用控制台输入创建Scanner对象
Scanner scanner=new Scanner(System.in);
2、调用Scanner中的nextXXX方法,获得需要的数据类型
例如:next、 nextLine、nextInt、nextByte等。