读取文件的代码

 
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);
    }

    
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值