3 回答
TA贡献1841条经验 获得超3个赞
你可以试试这个:
public static void writeToFile (String a, String username) throws FileNotFoundException {
Scanner lineScan = new Scanner (a);
String name = lineScan.next();
PrintStream newFile = new PrintStream (new File (username+".txt"));
//The below newFile command works
newFile.println(username);
if ((username.toUpperCase()).equals(name.toUpperCase()))
{
int count = 0;
System.setOut(newFile);
while (lineScan.hasNextLine())
{
String pop = lineScan.nextLine();
String s1 = 1920 + (10*count) + ": " + pop;
System.out.println(s1);
count++;
}
newFile.close();
}
}
TA贡献1797条经验 获得超6个赞
问题是您正在读取文件名的文本,而不是文件本身,以使用 Scanner 类读取文件,您可以像在 PrintStream 中那样使用文件对象。
固定代码:
public static void writeToFile (String a, String username) throws FileNotFoundException {
Scanner lineScan = new Scanner (new File(a));
String name = lineScan.next();
PrintStream newFile = new PrintStream (new File (username+".txt"));
//The below newFile command works
newFile.println(username);
if ((username.toUpperCase()).equals(name.toUpperCase()))
{
int count = 0;
while (lineScan.hasNextInt())
{
int pop = lineScan.nextInt();
String s1 = 1920 + (10*count) + ": " + pop;
newFile.println(s1);
count++;
}
}
newFile.close();
lineScan.close();
}
TA贡献1829条经验 获得超4个赞
我看不到flush()/close()
在任何地方被调用(在 if 块之外)。
需要在 PrintStream 对象上调用 flush()/close() 以实际执行对底层输出 Stream(在您的情况下为文件)的写入。
添加回答
举报