正文

Java中如何读写ini文件2006-11-28 21:29:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/zean/20990.html

分享到:

主题:Java中如何读写ini文件,我有个例子,帮忙看下
作者:sfkdkjjj
专家分:0
 会员信息
 发短消息
 所属BLOG
楼主
package notepad;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import java.io.*;

public class Note extends JFrame {

    private static final long serialVersionUID = -7283536731840224600L;
    private JTextArea content = new JTextArea();
    private JScrollPane jsp = new JScrollPane(content);
    private JMenuBar jmb = new JMenuBar();
    private JMenu file = new JMenu("文件");
    private JMenuItem newfile = new JMenuItem("新建");
    private JMenuItem open = new JMenuItem("打开");
    private JMenuItem save = new JMenuItem("保存");
    private JMenuItem saveas = new JMenuItem("另存为");
    private JMenuItem exit = new JMenuItem("退出");
    
    public Note(final String setDirectory) {
        setTitle("未命名 - 记事本");
        file.add(newfile);
        file.add(open);
        file.add(save);
        file.add(saveas);
        file.add(exit);
        jmb.add(file);
        setJMenuBar(jmb);
        getContentPane().add(jsp);
        setSize(500,400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        open.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                JFileChooser chooser = new JFileChooser();
                System.out.println(setDirectory);
                chooser.setCurrentDirectory(new File(setDirectory));
                int i = chooser.showOpenDialog(null);
                if (i == 0) {
                    File f = chooser.getSelectedFile();
                    System.out.println(f);
                    try {
                        setTitle(f.getName() + " - 记事本");
                        FileReader fis = new FileReader(f);
                        BufferedReader br = new BufferedReader(fis);
                        String s = null;
                        while (true) {
                            s = br.readLine();
                            if (s != null) {
                                content.append(s + "\n");
                                content.append("???");
                            } else {
                                break;
                            }
                        }
                        br.close();
                        fis.close();
                    } catch (FileNotFoundException e) {
                        JOptionPane.showMessageDialog(null, f.getName() + "\n找不到文件。\n请检查所给的文件名是否正确。");
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
        save.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                JFileChooser chooser = new JFileChooser();
                int i = chooser.showSaveDialog(null);
                if (i == 0) {
                    File f = chooser.getSelectedFile();
                    try {
                        FileWriter fw = new FileWriter(f);
                        BufferedWriter bw = new BufferedWriter(fw);
                        bw.write(content.getText());
                        bw.close();
                        fw.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
        exit.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                dispose();
            }
        });
    }
    public static void main(String[] args) {
        JFrame.setDefaultLookAndFeelDecorated(true);
        File f = new File("C:\\File.ini");                  //从这开始
        String setDirectory = null;
        try {
            FileReader fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);
            String s = null;
            while (true) {
                s = br.readLine();
                System.out.println(s);
                if (s == null) {
                    break;
                } else if(s.indexOf(" = ") == -1) {
                    continue;
                } else if(s.substring(0, s.indexOf(" = ")).equals("setDirectory")) {
                    setDirectory = s.substring(s.indexOf(" = ") + 4, s.length() - 2);
                    System.out.println(setDirectory);
                }
            }
            br.close();
            fr.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        Note n = new Note(setDirectory);                   //到这结束
        n.setVisible(true);
    }
}

这有个我写的例子,不过太麻烦了,这只是读取了一个设置
补充
所读取的 C:\\File.ini 内容
[file]
setDirectory = "C:\\";

 

作者:zhangheng77
专家分:3500
发表时间:2006-11-28 18:21:00    [回复]  [引用]
2 楼  
你写的不是挺好的吗?

没办法读文件就是这么麻烦
顶多改这里一点,就是判断有没有C:\\,如果有就显示yes

 /*else if(s.indexOf(" = ") == -1) {
                    continue;
                } else if(s.substring(0, s.indexOf(" = ")).equals("setDirectory")) {
                    setDirectory = s.substring(s.indexOf(" = ") + 4, s.length() - 2);
                    System.out.println("setDirectory is"+setDirectory);
                }*/
                setDirectory = s;
                Pattern expression = Pattern.compile( "C:\\\\" );
                Matcher matcher = expression.matcher( s );
                System.out.println(setDirectory );
                while ( matcher.find() )
                System.out.println("yes");

阅读(3917) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册