Récuperer la valeur d'une liste dans un fichier txt

Fermé
jj1k Messages postés 30 Date d'inscription jeudi 8 juin 2017 Statut Membre Dernière intervention 3 septembre 2017 - 24 juin 2017 à 18:06
forum92 Messages postés 220 Date d'inscription lundi 6 juillet 2015 Statut Membre Dernière intervention 14 août 2018 - 26 juin 2017 à 19:43
Bonjour j'utilise ce code pour creer un fichier avec 2 nouveaux champs .




package Ay;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Test {

	public static void main(String[] args) throws Exception {

		String csvFile = "d:/t1.txt";
		String csvFile1 = "C:\\csv\\csv1.txt";
		BufferedWriter bw = null;
		FileWriter fw = null;
		List<LineFile> list;
		try {
			list = ListFromTXT(csvFile);

			fw = new FileWriter(csvFile1);
			bw = new BufferedWriter(fw);
			bw.write("id,X,Y,capacite,charge,alpha,beta,alpah1,beta1" + "\r\n");
			for (LineFile xx : list) {
				bw.write(xx.getId() + "," + xx.getAttribute2() + "," + xx.getAttribute3() + "," + xx.getAttribute4()
						+ "," + xx.getAttribute5() + "," + xx.getAttribute6() + "," + xx.getAttribute7() + ","
						+ xx.getAttribute8() + "," + xx.getAttribute9() + "\r\n");
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (bw != null)
					bw.close();
				if (fw != null)
					fw.close();
			} catch (IOException ex) {
				ex.printStackTrace();
			}
		}
	}

	@SuppressWarnings("resource")
	public static List<LineFile> ListFromTXT(String file_name) throws IOException {

		BufferedReader br = null;
		BufferedReader br1 = null;
		ArrayList<LineFile> files = new ArrayList<LineFile>();

		try {

			br = new BufferedReader(new FileReader(file_name));

			String linee;
			List<String> alphas = new ArrayList<String>();

			while ((linee = br.readLine()) != null) {
				alphas.add(linee.split(",")[5]);
			}

			List<String> part1 = alphas.subList(0, 8 > alphas.size() ? alphas.size() : 8);
			alphas.removeAll(part1);

			List<String> part2 = alphas.subList(0, 8 > alphas.size() ? alphas.size() : 8);
			List<Integer> resultPart2 = new ArrayList<Integer>();
			for (String p2 : part2) {
				resultPart2.add(Integer.valueOf(p2) + 50);
			}
			alphas.removeAll(part2);

			List<String> part3 = alphas.subList(0, 8 > alphas.size() ? alphas.size() : 8);
			List<Integer> resultPart3 = new ArrayList<Integer>();
			for (String p3 : part3) {
				resultPart3.add(Integer.valueOf(p3) - 30);
			}
			alphas.removeAll(part3);

			br1 = new BufferedReader(new FileReader(file_name));
			String line;
			LineFile lineFile = null;
			String[] ls = null;

			while ((line = br1.readLine()) != null) {
				ls = line.split(",");
				lineFile = new LineFile();
				lineFile.setId(ls[0]);
				lineFile.setAttribute2(ls[1]);
				lineFile.setAttribute3(ls[2]);
				lineFile.setAttribute4(ls[3]);
				lineFile.setAttribute5(ls[4]);
				lineFile.setAttribute6(ls[5]);
				lineFile.setAttribute7(ls[6]);

				for (Integer i3 : resultPart3)
					lineFile.setAttribute8(i3);

				files.add(lineFile);
			}

			return files;
		} finally {
			if (br != null) {
				br.close();
			}
		}
	}

}

























le probleme ici qu'il met toujour la derniere valeur récupérer de la list resultPart3


comment je peux parcourir la list de façon que à chaque ligne il met la valeur récupérer ?



Merci
A voir également:

1 réponse

forum92 Messages postés 220 Date d'inscription lundi 6 juillet 2015 Statut Membre Dernière intervention 14 août 2018 133
26 juin 2017 à 19:43
Bonjour,
C'est normal qu'il te mettes la derniere valeur vu que tu boucles dans une boucle.

for (Integer i3 : resultPart3)
lineFile.setAttribute8(i3);

Il met donc la dernière valeur dans lineFile
0