2012-07-26 62 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