Java 如何根据当前日期从文件生成语句?
场景:我将作为作业做一天的小贴士,我做了很多尝试,可以达到以下水平: 我的问题是如何根据当前日期从文件中生成语句,如果当前日期已经显示了语句,请不要再次显示,从文件中获取另一个随机语句。 对不起,我的英语不好Java 如何根据当前日期从文件生成语句?,java,Java,场景:我将作为作业做一天的小贴士,我做了很多尝试,可以达到以下水平: 我的问题是如何根据当前日期从文件中生成语句,如果当前日期已经显示了语句,请不要再次显示,从文件中获取另一个随机语句。 对不起,我的英语不好 import java.io.*; import java.util.ArrayList; import java.util.Collections; import java.util.Random; class FileRead { public static void
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
class FileRead {
public static void main(String args[])
{
ArrayList<String> tip = new ArrayList<String>();
Random r= new Random();
int n= r.nextInt(10);
try{
FileInputStream fstream = new FileInputStream("d:/MyPhrases.txt");
// use DataInputStream to read binary NOT text
// DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
// write the content on the arraylist
tip.add(br.readLine());
}
//Close the input stream
in.close();
// Print the content on the console
while (tip != null) {
//Collections.shuffle(tip);
System.out.println (tip.get(n).toString());
System.exit(0);
}
}catch (Exception e){
System.err.println("Error: " + e.getMessage());
}
}
}
import java.io.*;
导入java.util.ArrayList;
导入java.util.Collections;
导入java.util.Random;
类文件读取{
公共静态void main(字符串参数[])
{
ArrayList tip=新的ArrayList();
随机r=新随机();
int n=r.nextInt(10);
试一试{
FileInputStream fstream=新的FileInputStream(“d:/MyPhrases.txt”);
//使用DataInputStream读取二进制而不是文本
//DataInputStream in=新的DataInputStream(fstream);
BufferedReader br=新的BufferedReader(新的InputStreamReader(fstream));
弦斯特林;
//逐行读取文件
而((strLine=br.readLine())!=null){
//将内容写在arraylist上
添加(br.readLine());
}
//关闭输入流
in.close();
//在控制台上打印内容
while(提示!=null){
//收藏。洗牌(提示);
System.out.println(tip.get(n.toString());
系统出口(0);
}
}捕获(例外e){
System.err.println(“错误:+e.getMessage());
}
}
}
对于该行
tip.add(br.readLine());
我相信你想要
tip.add(strline);
如果使用第一行,列表将添加下一行,而不是当前行
编辑:
while((strLine=br.readLine())!=null&&i您应该给出您的文件外观的一个片段。您的问题对于您想要实现的目标非常不清楚。您的文件中的几行可能会有所帮助。我们不知道您如何确定日期。日期是否在文件的一行中?我也不知道程序的随机部分。什么是随机的?在我的文件中,我有一句谚语每次都应该显示我希望我的程序检查今天的日期并生成一个谚语,如果日期更改,则显示另一个谚语,完全每天我想显示一个谚语,但不重复,我想洗牌
while ((strLine = br.readLine()) != null && i <= n) {
if (!tip.contains(strLine)) {
tip.add(strLine);
break;
}
n++;
}