


Explication détaillée de l'ajout, de la suppression et de la copie de fichiers et répertoires Java
Cet article présente principalement en détail l'ajout, la suppression et la copie de fichiers et de répertoires Java. Il a une certaine valeur de référence.
Il est souvent utilisé lors du développement avec des méthodes Java. tels que l'ajout, la suppression et la copie de fichiers et de répertoires. J'ai écrit une classe de widgets. Partagez-le avec tout le monde et j'espère que vous pourrez me corriger :
package com.wangpeng.utill; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.InputStream; import java.io.PrintWriter; /** * @author wangpeng * */ public class ToolOfFile { /** * 创建目录 * * @param folderPath * 目录目录 * @throws Exception */ public static void newFolder(String folderPath) throws Exception { try { java.io.File myFolder = new java.io.File(folderPath); if (!myFolder.exists()) { myFolder.mkdir(); } } catch (Exception e) { throw e; } } /** * 创建文件 * * @param filePath * 文件路径 * @throws Exception */ public static void newFile(String filePath) throws Exception { try { File myFile = new File(filePath); if (!myFile.exists()) { myFile.createNewFile(); } } catch (Exception e) { throw e; } } /** * 创建文件,并写入内容 * * @param filePath * 文件路径 * @param fileContent * 被写入的文件内容 * @throws Exception */ public static void newFile(String filePath, String fileContent) throws Exception { // 用来写入字符文件的便捷类 FileWriter fileWriter = null; // 向文本输出流打印对象的格式化表示形式,使用指定文件创建不具有自己主动行刷新的新 PrintWriter printWriter = null; try { File myFile = new File(filePath); if (!myFile.exists()) { myFile.createNewFile(); } fileWriter = new FileWriter(myFile); printWriter = new PrintWriter(fileWriter); printWriter.print(fileContent); printWriter.flush(); } catch (Exception e) { throw e; } finally { if (printWriter != null) { printWriter.close(); } if (fileWriter != null) { fileWriter.close(); } } } /** * 复制文件 * * @param oldPath * 被拷贝的文件 * @param newPath * 复制到的文件 * @throws Exception */ public static void copyFile(String oldPath, String newPath) throws Exception { InputStream inStream = null; FileOutputStream outStream = null; try { int byteread = 0; File oldfile = new File(oldPath); // 文件存在时 if (oldfile.exists()) { inStream = new FileInputStream(oldfile); outStream = new FileOutputStream(newPath); byte[] buffer = new byte[1444]; while ((byteread = inStream.read(buffer)) != -1) { outStream.write(buffer, 0, byteread); } outStream.flush(); } } catch (Exception e) { throw e; } finally { if (outStream != null) { outStream.close(); } if (inStream != null) { inStream.close(); } } } /** * 复制文件 * @param inStream 被拷贝的文件的输入流 * @param newPath 被复制到的目标 * @throws Exception */ public static void copyFile(InputStream inStream, String newPath) throws Exception { FileOutputStream outStream = null; try { int byteread = 0; outStream = new FileOutputStream(newPath); byte[] buffer = new byte[1444]; while ((byteread = inStream.read(buffer)) != -1) { outStream.write(buffer, 0, byteread); } outStream.flush(); } catch (Exception e) { throw e; } finally { if (outStream != null) { outStream.close(); } if (inStream != null) { inStream.close(); } } } /** * 复制目录 * * @param oldPath * 被复制的目录路径 * @param newPath * 被复制到的目录路径 * @throws Exception */ public static void copyFolder(String oldPath, String newPath) throws Exception { try { (new File(newPath)).mkdirs(); // 假设目录不存在 则建立新目录 File a = new File(oldPath); String[] file = a.list(); File tempIn = null; for (int i = 0; i < file.length; i++) { if (oldPath.endsWith(File.separator)) { tempIn = new File(oldPath + file[i]); } else { tempIn = new File(oldPath + File.separator + file[i]); } if (tempIn.isFile()) { copyFile(tempIn.getAbsolutePath(), newPath + "/" + (tempIn.getName()).toString()); } else if (tempIn.isDirectory()) {// 假设是子目录 copyFolder(oldPath + "/" + file[i], newPath + "/" + file[i]); } } } catch (Exception e) { throw e; } } /** * 删除文件 * * @param filePathAndName */ public static void delFileX(String filePathAndName) { File myDelFile = new File(filePathAndName); myDelFile.delete(); } /** * 删除目录 * * @param path */ public static void delForder(String path) { File delDir = new File(path); if (!delDir.exists()) { return; } if (!delDir.isDirectory()) { return; } String[] tempList = delDir.list(); File temp = null; for (int i = 0; i < tempList.length; i++) { if (path.endsWith(File.separator)) { temp = new File(path + tempList[i]); } else { temp = new File(path + File.separator + tempList[i]); } if (temp.isFile()) { temp.delete(); } else if (temp.isDirectory()) { // 删除完里面全部内容 delForder(path + "/" + tempList[i]); } } delDir.delete(); } public static void main(String[] args) { String oldPath = "F:/test/aaa/"; String newPath = "F:/test/bbb/"; try { // ToolOfFile.newFolder("F:/test/hello/"); // ToolOfFile.newFile("F:/test/hello/world.txt","我爱你,the world! "); ToolOfFile.copyFolder(oldPath, newPath); // ToolOfFile.delForder("F:/test/hello"); } catch (Exception e) { e.printStackTrace(); } System.out.println("OK"); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Guide de la racine carrée en Java. Nous discutons ici du fonctionnement de Square Root en Java avec un exemple et son implémentation de code respectivement.

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Guide du numéro Armstrong en Java. Nous discutons ici d'une introduction au numéro d'Armstrong en Java ainsi que d'une partie du code.

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est
