**我是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 :(得分:1)
答案 1 :(得分: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.
}