Java 将字符串写入Planner中的文本文件

Java 将字符串写入Planner中的文本文件,java,string,file,text,Java,String,File,Text,**我是Java的初学者,我正在做一个计划者,我需要写出日期、时间、名称和他们活动的描述的字符串,然后在以后找到它并显示他们活动的信息。如何写入文本文件,然后在以后找到它?谢谢** import java.io.BufferedReader; import java.io.DataInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWriter;

**我是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"));

        }





    }

}

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

看看


同时,您可能希望查看

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

然后

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

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.

}

也许会有点帮助。如果你想阅读文本,请不要使用DataInputStream,它会让人困惑而不是有用。
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.

}