Java'da bir uygulamayı kullanmak için openCSV kullanıyorum (çok büyük). Daha sonra 4. (daha sonra bu bir fark yaratan başka bir sütun veya iki tane eklenir) sütunu bir HashSet'e koyup bunu yeni bir dosyaya vereceğim. Hepsi iyi çalışıyor gibi görünüyor ama sadece dosyanın bir kısmını okuduğunu keşfettim (131.544 satır 272.948). Bu, genel olarak openCSV veya Java'nın bir sınırlaması mıdır yoksa bu konuyla ilgilenmenin bir yolu var mı? referans içinopenCSV Tüm dosyam okunmuyor
Kodum:
public static void main(String[] args) throws IOException {
String itemsFile = new String();
String outFile = new String();
itemsFile = "items.txt";
outFile = "so.txt";
CSVReader reader = null;
try {
reader = new CSVReader(new FileReader(itemsFile), '\t');
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
String[] nextLine;
HashSet<String> brands = new HashSet<>();
while ((nextLine = reader.readNext()) != null) {
brands.add(nextLine[4]);
}
String[] brandArray = new String[brands.size()];
Iterator<String> it = ((HashSet<String>) brands).iterator();
int listNum = 0;
while (it.hasNext()) {
Object brand = (Object) it.next();
brandArray[listNum] = (String) brand;
listNum++;
}
CSVWriter writer = new CSVWriter(new FileWriter(outFile), '\n');
writer.writeNext(brandArray);
writer.close();
}
benim kod dağınık ise bu benim ilk gerçek "Tamamlandı" Java uygulamasıdır dileriz. Herhangi bir yardım çok takdir edilmektedir.
Hatta bazı karakter ya da bir şey üzerinde asılı değil emin olmak için Metin dosyasından bu satırları kaldırarak denedimama ben kullanıcıya sayesinde bu anladım zaten
Ne olacağını daha iyi anlamak için koleksiyonların boyutunu yazdırdınız mı? Neyin tükendiğini görmek için son okuma çizgisine ulaştığında programınızda bir kesme noktası koymaya çalıştın mı? – assylias
Ayrıca, çiftleri içeremeyen bir hashset öğesine öğe eklersiniz. Aynı dizgenin yalnızca bir kez eklendiğinde daha fazla tthan bulunması durumunda. Bu büyük olasılıkla oluyor. HashSet'i ArrayList ile değiştirin ve daha iyi çalışıp çalışmadığını görün. – assylias
@assylias Bir Arraylist’e geçmeyi denedim ama aynı sonucu elde ediyorum. Bir HashSet kullanıyorum çünkü çoğaltmak istemiyorum. While döngüsüne, hashset'e değer ekleyen bir sayaç ekleyerek hangi satırın durduğunu çözdüm. Yine de bir mola noktası eklemeye çalışacağım ve ne olduğunu göreceğim. – Hirthas