Donc, j'écris une application Java qui utilise simple pour stocker des données sous forme de fichier XML, mais il est Enfant lent avec de gros fichiers lorsque cela stocke sur un lecteur réseau par rapport à un disque dur local. Donc, je voudrais le stocker localement avant de la copier à la destination souhaitée. P>
E.g. Quelque chose qui retourne quelque chose comme c: / temp code> sous Windows, / tmp code> sous Linux, et également pour d'autres plates-formes (telles que Mac). Je pourrais utiliser le chemin de la demande, mais le problème est que l'application Java est également exécutée à partir du lecteur réseau. P>
4 Réponses :
Essayez:
String path = System.getProperty("java.io.tmpdir");
CreateTempfile () était ce que je cherchais exactement, marqué cela comme réponse en raison de la complétude
System.getProperty("java.io.tmpdir")
The System and Runtime classes are those whose javadocs you should check first when something related to the system is required.
essayer system.geproperty ("java.io.tmpdir"); code> p>
Dans l'esprit de 'Soyons le problème "au lieu de" Répondons à la question spécifique ": p>
Quel type de flux d'entrée utilisez-vous lors de la lecture simple? Assurez-vous d'utiliser BufferedInputStream (ou BufferedReader) - sinon vous lisez un octet / caractère à la fois du flux, qui sera douloureusement lent lors de la lecture d'une ressource réseau. P>
au lieu de copier le fichier sur le disque local, tamponnez les entrées et vous serez prêt à partir. p>
En simplifiant, vous spécifiez uniquement quelle classe doit être le point de départ de XML-Serialization et un objet de fichier à l'endroit où il doit écrire le fichier. Donc, la seule chose que j'ai besoin de savoir, c'est comment trouver le "répertoire de fichiers temporaire", que d'autres ont répondu pour moi.
Vous pouvez également utiliser des flux si vous le souhaitez, par exemple en simple que vous puissiez utiliser Serializer.Write (MyObject, nouvelle bufferedOutPutStream (nouveau fichierOutPutStream (nouveau fichier ("myfile.xml"))))). Cela va tamponner la sortie un peu mieux pour vous si vous le souhaitez.
Utilisez un courant tamponné - essayez-le, je pense que vous serez surpris de la différence.
Utilisez
fichier.createtempfile (préfixe, suffixe) code>.