ch09

2026/4/28 16:30:40

rf.seek(i*4);

System.out.println(rf.readInt()); }

rf.close(); } }

程序分析:

本程序打开一个随机文件c.txt,向里面连续写入从0到9十个整数,然后将指针移到第五个,将5改为0,然后输出。

图9-7 随机文件的读写

从结果可看出5被改写为0。

移动指针时注意,一个整型数占4个字节,所以用rf.seek(5*4)。

9.5 案例-设计一个小型文本文件编辑器

设计一个图形界面的小型文本编辑器,可以打开一个文本文件,并且进行编辑,修改,保存。进入这个小文本编辑器之前先输入密码,如果密码输入正确进入编辑器,输入错误,系统给出提示。 1.登录界面

登录界面如图9-8所示。

图9-8 登录界面

代码如下:Login.java import java.io.*;

import javax.swing.*;

import java.awt.event.*;

public class Login extends JFrame implements ActionListener{ JPasswordField jpf=new JPasswordField(10); public Login(){

JPanel jp=new JPanel();

jp.add(new JLabel(\请输入密码:\ jp.add(jpf);

JButton jbtn=new JButton(\确定\ jbtn.addActionListener(this); jp.add(jbtn);

this.add(jp);

this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setSize(300,100); this.setLocation(200,200); this.setVisible(true); }

public void actionPerformed(ActionEvent ae){ try{

char fin[]=new char[256]; File f=new File(\

FileReader fr=new FileReader(f); fr.read(fin);

String pwd=new String(fin); fr.close();

pwd=pwd.trim();

String jt=new String(jpf.getPassword()); jt=jt.trim();

if(pwd.equals(jt)){ this.dispose(); new Edit(); } else{

JOptionPane.showMessageDialog(null, \密码错误,JOptionPane.ERROR_MESSAGE); } }

catch(Exception e){

System.out.println(\文件读取错误\ } }

请重输!\\提示\

public static void main(String args[]){ new Login(); } }

说明:

(1)Login类继承JFrame类,在构造方法中设计界面。

(2)密码保存在pwd.txt文件中,为了保密起见,采用JPasswordField组件输入密码。 (3)采用trim()方法是为了去空格,因为字符转换为字符串类型时可能会有空格,当用户通过文本框输入内容时也可能会输入空格。

2.编辑界面

如图9-9所示。

图9-9 编辑界面

代码如下:Edit.java import javax.swing.*; import java.awt.event.*; import java.io.*;

public class Edit extends JFrame implements ActionListener{ JTextArea jta=new JTextArea(10,40); JTextField jt_file=new JTextField(20); JTextField jt_txt=new JTextField(20);

JButton jbtn_add=new JButton(\添加\ JButton jbtn_save=new JButton(\保存\ JButton jbtn_open=new JButton(\打开\

public Edit(){

jbtn_add.addActionListener(this); jbtn_save.addActionListener(this); jbtn_open.addActionListener(this);

JPanel jp=new JPanel();

jp.add(new JLabel(\请输入文件名:\ jp.add(jt_file); jp.add(jbtn_open); jp.add(jta);

jp.add(new JLabel(\请输入内容:\ jp.add(jt_txt); jp.add(jbtn_add); jp.add(jbtn_save);

this.setSize(500,320); this.setLocation(200,200);

this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.add(jp);

this.setVisible(true); }

public void actionPerformed(ActionEvent e){ String sf;

if(e.getSource()==jbtn_add){ //“添加”按钮代码 String s1=jta.getText(); if(!s1.equals(\ jta.append(\ }

jta.append(jt_txt.getText()); }

if(e.getSource()==jbtn_save){ //“保存”按钮代码 sf=(jt_file.getText()).trim(); if(sf.equals(\

showMsg(\请输入文件名!\ } else{ try{

File f=new File(sf);

FileWriter fw=new FileWriter(f); fw.write(jta.getText()); fw.close();

showMsg(\保存完毕!\


ch09.doc 将本文的Word文档下载到电脑
搜索更多关于: ch09 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219