Maison > Java > javaDidacticiel > le corps du texte

Introduction détaillée à l'implémentation Java de la lecture, de l'écriture et de la suppression du répertoire de fichiers

黄舟
Libérer: 2017-09-15 10:07:03
original
1474 Les gens l'ont consulté

Cet article présente principalement le code d'implémentation détaillé des opérations de lecture, d'écriture et de suppression de fichiers Java. Les amis qui en ont besoin peuvent s'y référer

Obtenir les informations saisies par l'utilisateur de la console


public String getInputMessage() throws IOException...{
         System.out.println("请输入您的命令∶");
         byte buffer[]=new byte[1024];
         int count=System.in.read(buffer);
         char[] ch=new char[count-2];//最后两位为结束符,删去不要
         for(int i=0;i<count-2;i++)
             ch[i]=(char)buffer[i];
         String str=new String(ch);
         return str;
     }
Copier après la connexion
peut renvoyer les informations saisies par l'utilisateur. L'inconvénient est qu'il ne prend pas en charge la saisie en chinois et nécessite des améliorations supplémentaires.

2. Copier les fichiers

1. Copier les fichiers sous forme de flux de fichiers


 public void copyFile(String src,String dest) throws IOException...{
         FileInputStream in=new FileInputStream(src);
         File file=new File(dest);
         if(!file.exists())
             file.createNewFile();
         FileOutputStream out=new FileOutputStream(file);
         int c;
         byte buffer[]=new byte[1024];
         while((c=in.read(buffer))!=-1)...{
             for(int i=0;i<c;i++)
                 out.write(buffer[i]);        
         }
         in.close();
         out.close();
     }
Copier après la connexion
La méthode a été testée, prend en charge le traitement chinois et peut copier plusieurs types, tels que txt, xml, jpg, doc et d'autres formats

Écrire des fichiers <🎜. >1 .Utilisez PrintStream pour écrire des fichiers


2. Utilisez StringBuffer pour écrire des fichiers
public void PrintStreamDemo()...{
         try ...{
             FileOutputStream out=new FileOutputStream("D:/test.txt");
             PrintStream p=new PrintStream(out);
             for(int i=0;i<10;i++)
                 p.println("This is "+i+" line");
         } catch (FileNotFoundException e) ...{
             e.printStackTrace();
         }
     }
Copier après la connexion


Cette méthode peut définir le codage à utiliser pour résoudre efficacement les problèmes chinois.
public void StringBufferDemo() throws IOException......{
         File file=new File("/root/sms.log");
         if(!file.exists())
             file.createNewFile();
         FileOutputStream out=new FileOutputStream(file,true);        
         for(int i=0;i<10000;i++)......{
             StringBuffer sb=new StringBuffer();
             sb.append("这是第"+i+"行:前面介绍的各种方法都不关用,为什么总是奇怪的问题 ");
             out.write(sb.toString().getBytes("utf-8"));
         }        
         out.close();
     }
Copier après la connexion

4. Renommer le fichier


public void renameFile(String path,String oldname,String newname)...{
         if(!oldname.equals(newname))...{//新的文件名和以前文件名不同时,才有必要进行重命名
             File oldfile=new File(path+"/"+oldname);
             File newfile=new File(path+"/"+newname);
             if(newfile.exists())//若在该目录下已经有一个文件和新文件名相同,则不允许重命名
                 System.out.println(newname+"已经存在!");
             else...{
                 oldfile.renameTo(newfile);
             }
         }         
     }
Copier après la connexion
5. Transférer le répertoire des fichiers

Transférer un répertoire de fichiers n'est pas la même chose que copier un fichier. Copier un fichier signifie que le fichier existe dans les deux répertoires après la copie, tandis que transférer un répertoire de fichiers signifie que le fichier n'existe que dans le nouveau répertoire après le transfert.


public void changeDirectory(String filename,String oldpath,String newpath,boolean cover)...{
         if(!oldpath.equals(newpath))...{
             File oldfile=new File(oldpath+"/"+filename);
             File newfile=new File(newpath+"/"+filename);
             if(newfile.exists())...{//若在待转移目录下,已经存在待转移文件
                 if(cover)//覆盖
                     oldfile.renameTo(newfile);
                 else
                     System.out.println("在新目录下已经存在:"+filename);
             }
             else...{
                 oldfile.renameTo(newfile);
             }
         }       
     }
Copier après la connexion
6. Lecture de fichiers

1. Utilisez FileInputStream pour lire des fichiers


2. Utilisez BufferedReader pour lire
public String FileInputStreamDemo(String path) throws IOException...{
         File file=new File(path);
         if(!file.exists()||file.isDirectory())
             throw new FileNotFoundException();
         FileInputStream fis=new FileInputStream(file);
         byte[] buf = new byte[1024];
         StringBuffer sb=new StringBuffer();
         while((fis.read(buf))!=-1)...{
             sb.append(new String(buf));    
             buf=new byte[1024];//重新生成,避免和上次读取的数据重复
         }
         return sb.toString();
     }
Copier après la connexion
Dans les opérations IO, il sera plus efficace d'utiliser BufferedReader et BufferedWriter



3 .Utilisez dom4j pour lire les fichiers XML
public String BufferedReaderDemo(String path) throws IOException...{
         File file=new File(path);
         if(!file.exists()||file.isDirectory())
             throw new FileNotFoundException();
         BufferedReader br=new BufferedReader(new FileReader(file));
         String temp=null;
         StringBuffer sb=new StringBuffer();
         temp=br.readLine();
         while(temp!=null)...{
             sb.append(temp+" ");
             temp=br.readLine();
         }
         return sb.toString();
     }
Copier après la connexion


public Document readXml(String path) throws DocumentException, IOException...{
         File file=new File(path);
         BufferedReader bufferedreader = new BufferedReader(new FileReader(file));
         SAXReader saxreader = new SAXReader();
         Document document = (Document)saxreader.read(bufferedreader);
         bufferedreader.close();
         return document;
     }
Copier après la connexion
7. Créer des fichiers (dossiers)

1. 🎜>


2. Créer de nouveaux fichiers

public void createDir(String path)...{
         File dir=new File(path);
         if(!dir.exists())
             dir.mkdir();
     }
Copier après la connexion


8. Supprimer des fichiers (répertoire)
public void createFile(String path,String filename) throws IOException...{
         File file=new File(path+"/"+filename);
         if(!file.exists())
             file.createNewFile();
     }
Copier après la connexion

1. Supprimer les fichiers


2. Supprimer les répertoires

public void delFile(String path,String filename)...{
         File file=new File(path+"/"+filename);
         if(file.exists()&&file.isFile())
             file.delete();
     }
Copier après la connexion
Utiliser delete() de la classe File lors de la suppression. un répertoire, vous devez vous assurer qu'il n'y a pas de fichiers ou de sous-répertoires dans le répertoire, sinon la suppression échouera. Par conséquent, dans les applications pratiques, si nous voulons supprimer un répertoire, nous devons utiliser la récursion pour supprimer tous les sous-répertoires et fichiers du répertoire. , puis supprimez le répertoire .

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!