这个简单程序的目的是读取一个文件,从用户那里获取变量并将其保存到一个新的文件中,当从循环中获取的值不重复时,程序工作正常。
当前文件(books.txt)内容:“历史
体育
“小说”
当前文件(books\u new.txt)内容:“嗨,汤姆,你喜欢吗“嗨,汤姆,你喜欢体育嗨,汤姆,你喜欢小说”
预期文件(books\u new.txt)内容:“嗨,汤姆,你喜欢吗你喜欢历史以外的书吗?
嗨,汤姆,你喜欢运动吗?你喜欢运动以外的书吗?
嗨,汤姆,你喜欢小说吗?你喜欢小说以外的书吗?”
你能帮我完成这个循环/输出吗?
以下是程序代码:
package reader;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Reader {
public static void addToFile(String fileName,String Name, ArrayList<String> Hobbies)
{
try {
// Open given file in append mode.
BufferedWriter out = new BufferedWriter(
new FileWriter(fileName));
for(int i=0;i<Hobbies.size();i++)
out.write("Hi "+Name+", you like "+Hobbies.get(i)+System.getProperty("line.separator"));
out.close();
}
catch (IOException e) {
System.out.println("exception occoured" + e);
}
}
public static void main(String[] args) throws IOException {
File file = new File("Books.txt");
ArrayList<String> Hobbies =new ArrayList<String>();
BufferedReader br;
try {
br = new BufferedReader(new FileReader(file));
String st;
while ((st = br.readLine()) != null){
Hobbies.add(st);
}
Scanner s = new Scanner(System.in);
System.out.print("Please Enter Your Name: ");
String name= s.next();
Reader.addToFile("Books_new.txt", name, Hobbies);
}
catch (FileNotFoundException ex) {
Logger.getLogger(Reader.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
暂无答案!
目前还没有任何答案,快来回答吧!