0

** 我是 Java 的初学者,我正在做一个计划者,我需要编写他们事件的日期、时间、名称和描述的字符串,然后稍后找到它并显示有关他们的事件的信息。如何写入文本文件,然后再找到它?谢谢!**

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class Test {

    /**
     * @throws IOException 
     * @param args
     * @throws 
     */
    public static void main(String[] args) throws IOException {
        Scanner input = new Scanner ( System.in );
        String choice;
        String password = null;
        String time = null, name = null, dateview = null, dateedit, description = null, dateadd = null;
        FileWriter ostream;


        JOptionPane.showMessageDialog(null, "Welcome To The Pocket Planner!");
        System.out.println("");
        password = JOptionPane.showInputDialog("Please Enter Your Password");
        while (!password.toUpperCase().equals("PASSWORD"))
        {
            JOptionPane.showMessageDialog(null, "Try Again", "Incorrect Password", JOptionPane.ERROR_MESSAGE);
            password = JOptionPane.showInputDialog("Please Enter Your Password");
        }

        {
            do{
                do{
                    do{

                        choice = JOptionPane.showInputDialog("Type \"View\" To View Your Schedule" + "\n" + "Type \"Edit\" To Edit Your Schedule" + "\n" + "Type \"Add\" To Add To Your Schedule");

                        if (choice.equals("View")){
                            dateview = JOptionPane.showInputDialog("Enter the date you want to view in this format: MM/DD/YY");
                            while(dateadd != null){
                                FileInputStream istream = new FileInputStream("filename.txt");
                                DataInputStream in = new DataInputStream(istream);
                                BufferedReader br = new BufferedReader(new InputStreamReader(in));String strLine;
                                dateadd = br.readLine();
                            if(dateadd.equalsIgnoreCase(dateview)){
                                JOptionPane.showMessageDialog(null, (time + ":" + "\n" + name + " -" + " " + description));
                            }
                            else 
                            {
                                JOptionPane.showMessageDialog(null, "Try Again", "Event Not Found", JOptionPane.WARNING_MESSAGE);
                            }
                            }
                        }
                        else if (choice.equals("Edit")){
                            dateedit = JOptionPane.showInputDialog("Enter the date you want to edit in this format: MM/DD/YY");
                        }
                        else if (choice.equals("Add")) {
                            name = JOptionPane.showInputDialog("Enter the name of the event you want to add.");
                            dateadd = JOptionPane.showInputDialog("Enter the date you want to add in this format: MM/DD/YY");
                            time = JOptionPane.showInputDialog("Enter the time of your event");
                            description = JOptionPane.showInputDialog("Enter the description of your event");

                        }
                        else
                        {
                            JOptionPane.showMessageDialog(null, "Try Again", "Invalid Entry", JOptionPane.ERROR_MESSAGE);   
                        }
                    }while(!choice.toUpperCase().equals("Edit"));
                }while(!choice.toUpperCase().equals("View"));
            }while(!choice.toUpperCase().equals("Add"));

        }





    }

}
4

2 回答 2

1

您可以将日期、时间、名称等字符串与诸如 $$$ 之类的分隔符连接起来(此分隔符不应出现在名称中,因此请相应地使用一个分隔符)。

然后

File file = new File("textfile.txt");
// This is the file in which you want to write all planner entries
output = new BufferedWriter(new FileWriter(file));
output.write(text);

要阅读,请像这样打开文件

FileInputStream fstream = new FileInputStream("textfile.txt");
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;

while ((strLine = br.readLine()) != null)   { // Until file has content, keep reading
String[] temp;
temp = strLine.split("$$$");

//using string.split() with the delimiter to get back all the sub-strings.

}
于 2012-07-26T21:03:31.250 回答
1

从长远来看,我建议看看 Java 的 XML 功能

看一眼

同时,您可能想查看http://docs.oracle.com/javase/tutorial/essential/io/

于 2012-07-26T19:50:30.167 回答