第十六节:读文件,文件的创建,写文件,文件的读写以及鼠标键盘事件和图形绘制
读文件
//读文件
public static void read(String path,String filename){
try{
int length = 0;
String str = "";
byte buffer[]=new byte[10];
FileInputStream fis=new FileInputStream(new File(path,filename));
while((length=fis.read(buffer,0,buffer.length))!=-1){
str+=new String(buffer,0,length);
}
System.out.println(str);
fis.close();
}catch(FileNotFoundException e){
System.out.println("文件不存在");
}catch(IOException e){
e.printStackTrace();
}
}
文件的创建
public class FileDemo{
public static void createFolder(String path){
File folder = new File(path);
if(folder.exists()){
System.out.println("文件已存在!");
}else{
folder.mkdir();
}
}
public static void createFile(String path,String filename){
File file = new File(path,filename);
if(file.exists()){
System.out.println("文件已存在!");
System.out.println(file.length());
}else{
try{
file.createNewFile();
}catch(IOException e){
System.out.println("文件创建失败");
}
}
}
public static void main(String[] args){
FileDemo.createFolder("c:/test");
FileDemo.createFile("c:/test","1.txt");
}
}
写文件
public static void write(String path,String filename){
try{
String str = "234455";
byte b[] = str.getBytes();
FileOutputStream fos = new FileOutputStream(new File(path,filename));
fos.write(b);
}catch(FileNotFoundException e){
System.out.println("文件不存在");
}catch(IOException e){
System.out.println("写文件失败");
}
}
文件的读写
重点:
文件类主要功能:创建,读属性,写属性,删除等
文件读写操作
File类
File类的对象
用来获取文件本身的信息,如文件所在目录、文件长度、文件读写权限等,不涉及文件的读写操作。
构造函数
File(String filename)
File(String directoryPath,String filename)
File(File f,String filename)
获取文件的属性
String getName()
boolean canRead()
boolean canWrite()
long length()
boolean isFile()等
目录操作
boolean mkdir():创建目录。
String[] list():以字符串的形式返回目录下所有文件。
File[] listFiles():以File对象形式返回目录下所有文件。
文件操作
boolean createNewFile():创建一个新的文件。
boolean delete():删除一个文件
流的概念
Java输入输出功能是借助输入输出流类来实现的。
java.io包中包含大量用来完成输入输出流的类。
Java中流的分类:
流的运动方向,可分为输入流和输出流两种。
流的数据类型,可以分为字节流和字符流。
输入流类都是抽象类InputStream(字节输入流)或抽象类Reader类(字符输入流)的子类。
输出流类都是抽象类OutputStream(字节输出流)或抽象类Writer类(字符输出流)的子类。
输入流
输入流用于读取数据,用户可以从输入流中读取数据,但不能写入数据。
输入流读取数据过程如下:
(1)打开一个流。
如:FileInputStream inputFile=new FileInputStream("数据源");
(2)从信息源读取信息。
如:inputFile.read();
(3)关闭流。
如:inputFile.close();
输出流
输出流用于写入数据。只能写,不能读。
写数据到输出流过程如下:
(1)打开一个流。
如:FileOutputStream outFile=new FileOutputStream("数据源");
(2)写入信息到目的地。
如:outFile.write(inputFile.read()):
(3)关闭流。如:
如:outFile.close();
鼠标键盘事件及图形绘制
窗口中图形的绘制
鼠标事件
键盘事件
窗口中图形的绘制
所有组件的父类Component类中提供了组件绘制的几个方法:
public void paint():绘制组件。
public void update():更新组件。
public void repaint():重绘组件。
鼠标事件
MouseListener接口
MouseEvent类主要功能
键盘事件
KeyListener
KeyEvent类主要功能