J'ai la classe Loader où je charge le fichier txt dans BufferedReader à partir des ressources et retourne ce champ. J'utilise cette méthode mais cela agit vraiment étrange (pour moi). Lorsque je ne mets pas String str = bufferReader.readLine();
après bufferReader = new BufferedReader(fileReader);
(dans la classe Loader) que bufferReader dans une autre classe est vide, et readLine() renvoie null. Quand j'écris ce morceau de code dans la classe Loader, je peux lire chaque ligne de txt, excepté celle qui est lue dans la classe Loader. En outre, je ne peux pas lire la dernière ligne si je ne mets pas entrer à la fin.BufferedReader est parfois vide
public BufferedReader loadFromFileToBufferReader(String fileName) {
ClassLoader classLoader = getClass().getClassLoader();
System.out.print(getClass().getClassLoader().getResource("resources/" + fileName));
File file = new File(classLoader.getResource("resources/" + fileName).getFile());
BufferedReader bufferReader = null;
try (FileReader fileReader = new FileReader(file)) {
bufferReader = new BufferedReader(fileReader);
String str = bufferReader.readLine();
} catch (IOException e) {
System.err.println("Something went terribly wrong with file reading");
}
return bufferReader;
}
et utilisation:
public Database() {
productsInDatabse = new ArrayList<>();
codesList = new ArrayList<>();
loader = new LoadFromFile();
BufferedReader output = loader.loadFromFileToBufferReader("database.txt");
Product product;
String line;
String[] array;
try {
line = output.readLine();
while (line != null) {
J'ai ajouté du code. Est-ce mieux? – meDarq
Oui, beaucoup mieux :) J'essayerais d'initialiser le bufferedReader dans la base de données avec un fichier de la classe de chargement et voir si cela fonctionne, Vous changez le type de retour à Fichier et getTheFile avec un chemin spécifié voir si cela fonctionne comme vous chargez un fichier dans une variable de fichier pensé la classe et mettre le fichier dans le lecteur tamponné dans la base de données ... si cela fonctionne après vous êtes sûr à 100% le problème est dans le loadFromFileClass –
Je pense que si je peux utiliser la chaîne au lieu de BufferedReader, il résoudra ce problème je pense, mais je dois comprendre comment je peux travailler avec String au lieu de BufferedReader – meDarq