2012-07-26 144 views
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")); 

     } 





    } 

} 
+0

文件也许[这](http://docs.oracle.com/javase/tutorial/essential/io/file .html)会有所帮助。 – Pshemo 2012-07-26 19:00:18

回答

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. 

} 
+0

如果你想阅读文本,请不要使用DataInputStream,它比有用的更难以理解。 – 2012-08-15 11:29:14

相关问题