J'ai deux fichiers XML de deux bases de données différentes, mais ils ont les mêmes informations. L'un d'eux a VSReports et les autres Jasperreports (JavaScript). Je dois convertir le fichier XML de VSReports en Jasperreports. Le seul langage de programmation que je suis autorisé à utiliser est java.
Je suis déjà bloqué lorsque j'essaye de lire un fichier xml avec mon code.
java.nio.file.NoSuchFileException: 123.xml at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85) at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103) at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108) at java.base/sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:231) at java.base/java.nio.file.Files.newByteChannel(Files.java:370) at java.base/java.nio.file.Files.newByteChannel(Files.java:421) at java.base/java.nio.file.Files.readAllBytes(Files.java:3205) at java.base/java.nio.file.Files.readString(Files.java:3283) at InputBox.Pfad(InputBox.java:26) at InputBox.main(InputBox.java:10) null
Cela fonctionne très bien avec un fichier txt, mais lorsque j'essaie un fichier XML, cela entraîne une erreur:
import javax.swing.*; import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class InputBox { public static void main(String[] args) { Pfad(); } //opens JFileChooser public static void Pfad() { JFileChooser chooser = new JFileChooser(); int rueckgabeWert = chooser.showOpenDialog(null); if (rueckgabeWert == JFileChooser.APPROVE_OPTION) { System.out.println("Die zu öffnende Datei ist: " + chooser.getSelectedFile().getName()); } Path path = Paths.get(chooser.getSelectedFile().getName()); String content = null; try { content = Files.readString(path, Charset.defaultCharset()); } catch (IOException e) { e.printStackTrace(); } //System.out.println the content of the file System.out.println(content); } }
3 Réponses :
vous essayez d'ouvrir un fichier sans lui donner de chemin absolu, cela ne fonctionnera que si le fichier est dans le répertoire de travail actuel
D'après votre description, il semble que vous n'ayez pas transmis le nom complet du fichier xml à votre fonction. Alors essayez
File f = chooser.getSelectedFile(); String path = f.getAbsolutePath + f.getName(); try { content = Files.readString(path, Charset.defaultCharset()); } catch (IOException e) { e.printStackTrace(); }
J'espère que cette aide.
Comme dit, File # getName () perd la partie répertoire du chemin, donc il ne trouvera un fichier que s'il est dans le répertoire courant. Pour convertir un objet File
en Path
, utilisez simplement sa méthode toPath()
:
Path path = chooser.getSelectedFile().toPath();
Copie possible de Quelle est la meilleure / la plus simple façon de lire un fichier XML dans une application Java?
et qu'est-ce qu'un "fichier javascript xml"?
@Stultuske c'est plus ou moins spécifié dans la question "un fichier xml qui a été écrit avec javascript". Ce qui n’est toujours pas pertinent, bien sûr.
un fichier xml est un fichier xml indépendamment du fait qu'il soit écrit à la main, en C #, en PHP, en javascript ou même par le crayon émoussé appelé java
"pour convertir un fichier xml en un fichier xml qui a été écrit avec javascript" - xml est xml, il n'y a rien à faire ici.
Votre question n'a aucun sens. Essayez de recadrer votre question pour que les autres la comprennent mieux.