{"id":375,"date":"2013-09-01T21:32:37","date_gmt":"2013-09-01T21:32:37","guid":{"rendered":"http:\/\/karstieltopia.com\/?p=375"},"modified":"2016-02-20T05:43:58","modified_gmt":"2016-02-20T05:43:58","slug":"crear-un-fichero-temporal-en-java","status":"publish","type":"post","link":"http:\/\/karstieltopia.com\/programacion\/java\/crear-un-fichero-temporal-en-java\/","title":{"rendered":"Crear un fichero temporal en Java"},"content":{"rendered":"

Crear un fichero temporal puede parecer tan tonto como simplemente crear un fichero con un nombre y luego usarlo. Y s\u00ed que b\u00e1sicamente ser\u00eda eso, pero \u00bfqu\u00e9 pasa si volvemos a arrancar el programa que hemos generado? Pues que se encontrar\u00eda el fichero ya creado y a lo mejor a\u00f1ade algo al final o lo lee entero y falla.<\/p>\n

Tambi\u00e9n podemos optar por borrarlo al terminar de usarlo y ya estar\u00eda porque si volvemos a arrancarlo, no estar\u00eda el fichero.<\/p>\n

Pero aun as\u00ed habr\u00eda posibilidad de error dado que \u00bfy si el programa que estamos utilizando es multihilo y accedemos en diferentes hilos a ese fichero? Tambi\u00e9n pasar\u00eda lo mismo si lanz\u00e1semos varios forks del mismo proceso.<\/p>\n

Por ello es recomendable utilizar siempre alg\u00fan sistema que permita garantizar relativamente el nombre de un fichero. Por ejemplo, en Linux nos podemos encontrar el comando mktemp<\/em> <\/strong>que crea un fichero temporal en \/tmp.<\/p>\n

\u00bfPero y si estamos desarrollando en Java y queremos que sea independiente de la plataforma? Pues aqu\u00ed os dejo un ejemplo sencillo de c\u00f3mo ser\u00eda la creaci\u00f3n de un fichero temporal:<\/p>\n

\r\nimport java.io.File;\r\nimport java.io.IOException;\r\n\r\npublic class CreateTempFileExample\r\n{\r\n    public static void main(String[] args)\r\n    {\r\n\r\n    \ttry{\r\n\r\n    \t   \/\/create a temp file\r\n    \t   File temp = File.createTempFile("temp-file-name", ".tmp");\r\n\r\n    \t   System.out.println("Temp file : " + temp.getAbsolutePath());\r\n\r\n    \t}catch(IOException e){\r\n\r\n    \t   e.printStackTrace();\r\n\r\n    \t}\r\n\r\n    }\r\n}\r\n<\/pre>\n

C\u00f3mo veis, todo se limita a llamar al m\u00e9todo createTempFile de la clase File. Le pasamos una base para el nombre temporal (y una extensi\u00f3n si queremos) y se crear\u00e1 el fichero temporal de manera acorde con el sistema operativo que estemos utilizando (en Linux ser\u00eda en \/tmp y en Windows ser\u00eda C:\\Users\\<user>\\AppData\\Local\\Temp\\).<\/p>\n

Links<\/strong><\/em><\/p>\n

http:\/\/www.mkyong.com\/java\/how-to-create-temporary-file-in-java\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"

Crear un fichero temporal puede parecer tan tonto como simplemente crear un fichero con un nombre y luego usarlo. Y s\u00ed que b\u00e1sicamente ser\u00eda eso, pero \u00bfqu\u00e9 pasa si volvemos a arrancar el programa que hemos generado? Pues que se encontrar\u00eda el fichero ya creado y a lo mejor a\u00f1ade algo al final o lo […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false},"categories":[22],"tags":[23,87],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"yoast_head":"\nCrear un fichero temporal en Java - Karstieltopia<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/karstieltopia.com\/programacion\/java\/crear-un-fichero-temporal-en-java\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Crear un fichero temporal en Java - Karstieltopia\" \/>\n<meta property=\"og:description\" content=\"Crear un fichero temporal puede parecer tan tonto como simplemente crear un fichero con un nombre y luego usarlo. Y s\u00ed que b\u00e1sicamente ser\u00eda eso, pero \u00bfqu\u00e9 pasa si volvemos a arrancar el programa que hemos generado? Pues que se encontrar\u00eda el fichero ya creado y a lo mejor a\u00f1ade algo al final o lo […]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/karstieltopia.com\/programacion\/java\/crear-un-fichero-temporal-en-java\/\" \/>\n<meta property=\"og:site_name\" content=\"Karstieltopia\" \/>\n<meta property=\"article:published_time\" content=\"2013-09-01T21:32:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-02-20T05:43:58+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:creator\" content=\"@karstiel\" \/>\n<meta name=\"twitter:site\" content=\"@karstiel\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"http:\/\/karstieltopia.com\/#website\",\"url\":\"http:\/\/karstieltopia.com\/\",\"name\":\"Karstieltopia\",\"description\":\"Programaci\\u00f3n, tecnolog\\u00eda y a\\u00f1adidos\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"http:\/\/karstieltopia.com\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/karstieltopia.com\/programacion\/java\/crear-un-fichero-temporal-en-java\/#webpage\",\"url\":\"http:\/\/karstieltopia.com\/programacion\/java\/crear-un-fichero-temporal-en-java\/\",\"name\":\"Crear un fichero temporal en Java - Karstieltopia\",\"isPartOf\":{\"@id\":\"http:\/\/karstieltopia.com\/#website\"},\"datePublished\":\"2013-09-01T21:32:37+00:00\",\"dateModified\":\"2016-02-20T05:43:58+00:00\",\"author\":{\"@id\":\"http:\/\/karstieltopia.com\/#\/schema\/person\/3d09a55c38c7c00e78c41fa3f71a6e75\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/karstieltopia.com\/programacion\/java\/crear-un-fichero-temporal-en-java\/\"]}]},{\"@type\":\"Person\",\"@id\":\"http:\/\/karstieltopia.com\/#\/schema\/person\/3d09a55c38c7c00e78c41fa3f71a6e75\",\"name\":\"karstiel\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6AuIG-63","_links":{"self":[{"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/posts\/375"}],"collection":[{"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/comments?post=375"}],"version-history":[{"count":5,"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/posts\/375\/revisions"}],"predecessor-version":[{"id":387,"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/posts\/375\/revisions\/387"}],"wp:attachment":[{"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/media?parent=375"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/categories?post=375"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/karstieltopia.com\/wp-json\/wp\/v2\/tags?post=375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}