JavaSE第八十六讲:Java IO详解

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() {
			
			@Override
			public 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{
	@Override
	public void actionPerformed(ActionEvent e) {
		System.out.println("hello world");
	}
}*/

编译执行结果就不会贴出来了,当然上述匿名内部类也可以使用Adapter类来用,如下程序:
		frame.addWindowListener(new WindowAdapter() {
			@Override
			public 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的构造方法如下图所示:

JavaSE第八十六讲:Java IO详解_第1张图片

[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 block
			e.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 : 显示出错误修正的提示框。




你可能感兴趣的:(JavaSE第八十六讲:Java IO详解)