package
com.hz.FileandIO;
// 读文件的代码:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.ScrollPane;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class FileTest extends JFrame implements ActionListener ... {
private JTextField enterField;
private JTextArea outputArea;
public FileTest()
...{
super("Testing class File.");
enterField = new JTextField("Enter file or directory name here");
enterField.addActionListener(this);
outputArea = new JTextArea();
ScrollPane scrollPane = new ScrollPane();
scrollPane.add(outputArea);
Container container = getContentPane();
container.add(enterField, BorderLayout.NORTH);
container.add(scrollPane, BorderLayout.CENTER);
setSize(400,400);
setVisible(true);
}
public void actionPerformed(ActionEvent actionEvent) ...{
//此方法创建一个新的File对象,并将该对象赋值给name
File name = new File(actionEvent.getActionCommand());
//调用File的exists方法来判断用户输入的文件名或文件名是否存在
if(name.exists())
...{
//isFile,isDirectory和isAbsolute方法检测File对象的结果
outputArea.setText(name.getName()+"exists "+
(name.isFile() ? "is a directory " : "is not a file ") +
(name.isDirectory() ? "is adirectory " : "is not a directory ") +
(name.isAbsolute() ? "is absolute path " : "is not a absolute") + "Last modified:" +
//这个为
name.lastModified() + " Length; " + name.length() +
" Path:" + name.getPath() + " Absolute path: " +
name.getAbsolutePath() + " Length:" + name.getParent());
//判断如果是文件则执行下面方法。
if(name.isFile())
...{
//BufferedReader 方法提供了读取行的方法但不知道如何打开一个用于输入的文件
BufferedReader input;
try ...{
//FileReader方法用于打开文件它不知道读取文本行
input = new BufferedReader(new FileReader(name));
StringBuffer sb = new StringBuffer();
String text;
outputArea.append(" ");
//通过BufferReader类的readLine方法一次将一行文本读取为一个字符串。
while((text = input.readLine()) != null)
sb.append(text + " ");
outputArea.append(sb.toString());
} catch (FileNotFoundException e) ...{
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (IOException io) ...{
// TODO 自动生成 catch 块
io.printStackTrace();
}
}
//如果是目录,则程序使用File类的list方法读取目录内容。
else if(name.isDirectory())...{
String directory[] = name.list();
outputArea.append(" Directory contents: ");
for(int i=0;i<directory.length;i++)
outputArea.append(directory[i] + " ");
}
}
//文件名或目录名不存在
else...{
JOptionPane.showMessageDialog(this,actionEvent.getActionCommand() +
"文件名或目录名不存在", "ERROR", JOptionPane.ERROR_MESSAGE);
}
}
public static void main(String args[])
...{
FileTest application = new FileTest();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
// 读文件的代码:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.ScrollPane;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class FileTest extends JFrame implements ActionListener ... {
private JTextField enterField;
private JTextArea outputArea;
public FileTest()
...{
super("Testing class File.");
enterField = new JTextField("Enter file or directory name here");
enterField.addActionListener(this);
outputArea = new JTextArea();
ScrollPane scrollPane = new ScrollPane();
scrollPane.add(outputArea);
Container container = getContentPane();
container.add(enterField, BorderLayout.NORTH);
container.add(scrollPane, BorderLayout.CENTER);
setSize(400,400);
setVisible(true);
}
public void actionPerformed(ActionEvent actionEvent) ...{
//此方法创建一个新的File对象,并将该对象赋值给name
File name = new File(actionEvent.getActionCommand());
//调用File的exists方法来判断用户输入的文件名或文件名是否存在
if(name.exists())
...{
//isFile,isDirectory和isAbsolute方法检测File对象的结果
outputArea.setText(name.getName()+"exists "+
(name.isFile() ? "is a directory " : "is not a file ") +
(name.isDirectory() ? "is adirectory " : "is not a directory ") +
(name.isAbsolute() ? "is absolute path " : "is not a absolute") + "Last modified:" +
//这个为
name.lastModified() + " Length; " + name.length() +
" Path:" + name.getPath() + " Absolute path: " +
name.getAbsolutePath() + " Length:" + name.getParent());
//判断如果是文件则执行下面方法。
if(name.isFile())
...{
//BufferedReader 方法提供了读取行的方法但不知道如何打开一个用于输入的文件
BufferedReader input;
try ...{
//FileReader方法用于打开文件它不知道读取文本行
input = new BufferedReader(new FileReader(name));
StringBuffer sb = new StringBuffer();
String text;
outputArea.append(" ");
//通过BufferReader类的readLine方法一次将一行文本读取为一个字符串。
while((text = input.readLine()) != null)
sb.append(text + " ");
outputArea.append(sb.toString());
} catch (FileNotFoundException e) ...{
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (IOException io) ...{
// TODO 自动生成 catch 块
io.printStackTrace();
}
}
//如果是目录,则程序使用File类的list方法读取目录内容。
else if(name.isDirectory())...{
String directory[] = name.list();
outputArea.append(" Directory contents: ");
for(int i=0;i<directory.length;i++)
outputArea.append(directory[i] + " ");
}
}
//文件名或目录名不存在
else...{
JOptionPane.showMessageDialog(this,actionEvent.getActionCommand() +
"文件名或目录名不存在", "ERROR", JOptionPane.ERROR_MESSAGE);
}
}
public static void main(String args[])
...{
FileTest application = new FileTest();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}