pessoal bom dia, gostaria de pedir uma ajuda!!
estou tentando gravar em arquivo .txt com milhões de linhas, com possíveis possibilidades!
Peguei aqui esta classe, o meu problema é que quando o arquivo fica muito grande eu não consigo abrir o arquivo de saida "result.txt".
Como faço quando a massa de dados é muito grande!!
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.math.BigInteger;
public class Teste {
private static BigInteger nVezes = BigInteger.ZERO;
private static PrintStream gravador;
public static void main(String args[]) {
try {
gravador = new PrintStream("result.txt");
StringBuffer seq = new StringBuffer();
seq.append("abcdefghijklmnopqrstuvwxyz");
seq.append("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
seq.append("[telefone removido]");
seq.append("`~!@#$%^&*()-_=+[]{}|;:',<.>/?\\" ");
gravador.println("");
gravador
.println("#######################################################################################################");
gravador.println(seq);
gravador
.println("#######################################################################################################");
gravador.println("");
int maxLevel;
for (maxLevel = 1; maxLevel <= 4; maxLevel++) {
new Teste().proccess(new StringBuilder(seq), maxLevel);
}
gravador.close();
System.out.println("---Concluido---");
System.out.println(nVezes.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
private void proccess(StringBuilder sequencia, int maxLevel) {
for (int i = 0; i < sequencia.length(); i++) {
add(new StringBuilder(), sequencia.charAt(i), removeChar(sequencia,
i), 1, maxLevel);
}
}
private void add(StringBuilder seq, char c, StringBuilder remain,
int level, int maxLevel) {
StringBuilder newSeq = new StringBuilder(seq.length() + 1);
newSeq.append(seq);
newSeq.append(c);
if (remain.length() == 0 || level == maxLevel) {
System.out.println(newSeq);
gravador.println(newSeq);
nVezes = nVezes.add(BigInteger.ONE);
} else {
for (int i = 0; i < remain.length(); i++) {
add(newSeq, remain.charAt(i), removeChar(remain, i), level + 1,
maxLevel);
}
}
}
private StringBuilder removeChar(StringBuilder c, int pos) {
StringBuilder result = new StringBuilder(c.length() - 1);
result.append(c);
result.deleteCharAt(pos);
return result;
}
}