文件大小不断增加

时间:2017-07-04 13:30:48

标签: java

执行以下代码的大小为" username.txt"设备上的文件不断增加。是什么原因?

package files2;

import java.io.FileNotFoundException;

import java.io.File;

import java.io.PrintStream;

import java.util.Scanner;

public class extractor {
public static void main(String[] args)throws FileNotFoundException {
    Scanner fromFile=new Scanner(new File("emails.txt"));
    PrintStream toFile=new PrintStream("username.txt");
    char symbol;
    while(fromFile.hasNext()) {
        symbol=fromFile.findWithinHorizon(".",0).charAt(0);
        while(symbol !='@') {
            toFile.print(symbol);
            symbol=fromFile.findWithinHorizon(".",0).charAt(0);
        }
        fromFile.nextLine();
        toFile.println();
    }
    fromFile.close();
    toFile.close();

}

}

1 个答案:

答案 0 :(得分:0)

您将流打开到文件

PrintStream toFile=new PrintStream("username.txt");

然后你继续写信:

toFile.print(symbol);
...
toFile.close();

这会明显增加toFile的大小。每个新符号或新行都会增加文件的大小。

此外,hasNextfindWithinHorizon 不会推进扫描程序。你基本上是在永远读同一个角色。如果我得到您要执行的操作,请使用next()推进您的扫描仪(每findWithinHorizon之后)。另请参阅[文件] https://docs.oracle.com/javase/8/docs/api/index.html?java/util/Scanner.html)。

请注意,使用next作为分隔符只需使用@即可。