[java] récupération de fichier texte matrice
flora806
-
Amorri Anis -
Amorri Anis -
SOS j'ai besoin d'aide. (urgent)
salut tt le monde,
j'ai un petit souci pour récupérer le contenu d'un fichier txt dans une matrice. (en java)
mon fichier est composé de 3 colonnes : Id de l'utilisateur, Id de l'article et une valeur (entier), ils sont séparés par un espace:
par exp:
903 52 12
401 36 11
......
ma matrice doit contenir tous les entiers et je dois tjr pouvoir retrouver les id d'utilisateur et les id d'articles qui seront listés ailleurs par exp.
comment je pourrais-faire?
salut tt le monde,
j'ai un petit souci pour récupérer le contenu d'un fichier txt dans une matrice. (en java)
mon fichier est composé de 3 colonnes : Id de l'utilisateur, Id de l'article et une valeur (entier), ils sont séparés par un espace:
par exp:
903 52 12
401 36 11
......
ma matrice doit contenir tous les entiers et je dois tjr pouvoir retrouver les id d'utilisateur et les id d'articles qui seront listés ailleurs par exp.
comment je pourrais-faire?
A voir également:
- Récupération de place en java
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
1 réponse
Salut !
;-)
HackTrack
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class DataMatrixHandler {
private String filePath;
private int[][] data;
public DataMatrixHandler(String filePath) throws IOException {
super();
this.filePath = filePath;
parseFile();
}
private void parseFile() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(filePath));
String line = null;
List<String> items = new ArrayList<String>();
StringTokenizer splitter;
while ((line = reader.readLine()) != null) {
items.add(line);
}
data = new int[items.size()][3];
int counter = 0;
for (String item : items) {
splitter = new StringTokenizer(item, " ");
data[counter][0] = Integer
.parseInt((String) splitter.nextElement());
data[counter][1] = Integer
.parseInt((String) splitter.nextElement());
data[counter][2] = Integer
.parseInt((String) splitter.nextElement());
counter++;
}
}
public int[] getUserList(int articleId) {
int[] userList = new int[0];
for (int[] dataLine : data) {
if (dataLine[1] == articleId) {
int[] newList = new int[userList.length + 1];
int counter = 0;
for (int entry : userList) {
newList[counter] = entry;
counter++;
}
newList[counter] = dataLine[0];
userList = newList;
}
}
return userList;
}
public int[] getArticlesList(int userId) {
int[] articlesList = new int[0];
for (int[] dataLine : data) {
if (dataLine[0] == userId) {
int[] newList = new int[articlesList.length + 1];
int counter = 0;
for (int entry : articlesList) {
newList[counter] = entry;
counter++;
}
newList[counter] = dataLine[1];
articlesList = newList;
}
}
return articlesList;
}
public static void main(String[] args) {
try {
DataMatrixHandler demo = new DataMatrixHandler("D:/data.txt");
int userId = 401;
System.out.print("Articles de l'utilisateur n°" + userId + ": ");
for (int i : demo.getArticlesList(userId)) {
System.out.println(i + " ");
}
int articleId = 52;
System.out.println("Utilisateurs de l'article n°" + articleId
+ ": ");
for (int i : demo.getUserList(articleId)) {
System.out.println(i + " ");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
;-)
HackTrack
Merci bcp pour ta réponse, je vais tester ton code tt de suite ;)
thanks!!
ça marche super bien, mille merci ;)
!!!!
j'ai utilisé ton code pour un récupérer un autre fichier texte en java.
ce fichier se présente comme ça:
Id|age|sexe|profession|CodePostal
j'ai adapté ton code et ça a donné ceci:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.io.Reader;
import java.util.Vector;
public class DemogData {
private String filePath;
private String [][] data;
public DemogData(String filePath) throws IOException {
super();
this.filePath = filePath;
parseFile();
}
private void parseFile() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(filePath));
String line = null;
List<String> items = new ArrayList<String>();
StringTokenizer splitter;
while ((line = reader.readLine()) != null) {
items.add(line);
}
data = new String [items.size()][5];
int counter = 0;
for (String item : items) {
splitter = new StringTokenizer(item, "|");
int nv = splitter.countTokens() ;
counter++;
}
}
public String[] getuList(String occupation) {
String[] uList = new String[0];
for (String[] dataLine : data) {
if (dataLine[3] == occupation) {
String[] newList = new String[uList.length + 3];
int counter = 0;
for (String entry : uList) {
newList[counter] = entry;
counter++;
}
newList[counter] = dataLine[0];
uList = newList;
}
}
return uList;
}
public static void main(String[] args) {
try {
DemogData demo = new DemogData("C:/u.txt");
String occupation = "student";
System.out.print("utilisateurs ayant profession" + " " + occupation + ": ");
for (String i : demo.getuList(occupation)){
System.out.println(i + " ");
}
} catch (IOException e) {
e.printStackTrace();
}
}
/* try {
DataMatrixHandler demo = new DataMatrixHandler("C:/data tries2.txt");
int userId = 1;
System.out.print("items votés par l'utilisateur n°" + userId + ": ");
for (int i : demo.getArticlesList(userId)) {
System.out.println(i + " ");
}*/
}
*************
Mais en fait quand j'exécute ça, ça me donne rien en output et la démo ne marche pas.
je ne sais pas c dû à quoi :(
est-ce que t'aurais une idée?
Merci.
Flora
j'espère que tu peux m'aider aussi, je veux faire un code de compiler un fichier latex (qui compose des formules mathématiques) à un fichier Java. merci pour votre aide
par exemple
~~~~$w_{i,j}\in\{0,1\}\forall i\in \{1,\ldots,n\}, \forall j \in \{1,\dots,n_i\}$\\