JavaSE第八十六讲:Java IO详解

来源:互联网 发布:怎么删除淘宝空间图片 编辑:程序博客网 时间:2024/05/16 03:44

1. 在讲Java IO操作之前,我们先对上一讲内容的匿名内部类进行补充,主要是讲解一下匿名内部类在Swing中是如何使用的。

package com.ahuier.innerclass;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;public class SwintTest {public static void main(String[] args) {JFrame frame = new JFrame("JFrame");JButton button = new JButton("click me");button.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("hello world");}});frame.setSize(200,200);frame.getContentPane().add(button);frame.setVisible(true);}}/* * 类MyListener,只有作为button的事件监听器来使用,不会再被别的类的使用,所有单独把其定义一个类比较浪费 * 建议将其写成button的匿名内部类 *//*class MyListener implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("hello world");}}*/

编译执行结果就不会贴出来了,当然上述匿名内部类也可以使用Adapter类来用,如下程序:
frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});

如上所写代码段所示。

2. Java I/O系统 [Java输入和输出系统,这个是非常重要的知识点,基本上所有项目都是有涉及到这块内容]

1).课程目标

(1)理解Java I/O系统
(2)熟练使用java.io包中的相关类与接口进行I/O编程 [还有一些类是放在nio中的,这个是 new io 操作]
(3)掌握Java I/O的设计原则与使用的设计模式[如果不理解这边的设计模式,IO学习就比较困难]

2). 对程序语言设计者来说,设计一个令人满意的I/O(输入输出)系统,是件极艰巨的任务______摘自《Thinking in Java》[IO一般是跟硬件设备有很多关系]

3). File

(1)一个File类的对象,表示了磁盘上的文件或目录 [注意这边Java的File统一的表示的文件和目录,文件与目录是不同的,文件是有内容的,目录是放的是文件或者目录;所以Java中根据File类提供的方法来区分是文件或者目录]

(2)File类提供了与平台无关的方法来对磁盘上的文件或目录进行操作

(3)File类直接处理文件和文件系统。

(4)File类没有指定信息怎样从文件读取或向文件存储[File没有权限对文件内容进行修改的,比如对文件追加一行文本等,这点要注意]

(5)File类描述了文件本身的属性

(6)File对象用来获取或处理与磁盘文件相关的信息,例如权限,时间,日期和目录路径

(7)File类还可以浏览子目录层次结构

(8)java.io包中的File类提供了与具体平台无关的方式来描述目录和文件对象的属性功能。其中包含大量的方法可用来获取路径、目录和文件的相关信息,并对它们进行创建、删除、改名等管理工作。因为不同的系统平台,对文件路径的描述不尽相同。为做到平台无关,在Java语言中,使用抽象路径等概念。Java自动进行不同系统平台的文件路径描述与抽象文件路径之间的转换。[Java中File可以是跨平台的,也就是说可以表示Linux上的文件,也可以是Windows上的文件]

(9)File类的直接父类是Object类。

(10)下面的构造方法可以用来生成File 对象:

File(String directoryPath)[这边directoryPath表示路径]

File(String directoryPath, String filename)

File(File dirObj, String filename)

查看JDK Doc中File的构造方法如下图所示:

[File的构造方法有四个,实际上我们用的一般是前面三个,用的比较多的是第一个和第二个]

同时查看里面的方法,比较常用的如:createNewFile()表示创建一个文件,返回一个boolean值。

package com.ahuier.io;import java.io.File;import java.io.IOException;public class FileTest1 {public static void main(String[] args) {/* * 注意这边的路径分隔符:Windows是反斜杠"\",其他系统都是正斜杠"/". * 在Java中反斜杠表示转义字符的,它与后面第一字母是配对使用的 * 所以这边 写法可以是 连续两个反斜杠 比如:"c:\\ahuier" * 也可以直接使用正斜杠了 "/" * 推荐使用正斜杠"/" 这样就可以跨平台使用了 */File file =  new File("c:/text.jpg");try {System.out.println(file.createNewFile());} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

编译执行后,在C盘根目录下生成了text.jpg文件,同时在控制台打印出true

(11)这里,directoryPath是文件的路径名,filename 是文件名,dirObj 是一个指定目录的File 对象,举例说明:

File myFile = new File("myfile. txt");
File myDir = new File("MyDocs");
File myFile = new File( myDir, "myfile. txt");

   这些构造方法取决于访问文件的方式。例如,若在应用程序里只用一个文件,第一种创建文件的结构是最容易的。但若在同一目录里打开数个文件,则后种方法更好一些。


这边提一下Eclipse中的快捷键ctrl + 1 : 显示出错误修正的提示框。




原创粉丝点击