In diesem Artikel wird hauptsächlich der detaillierte Implementierungscode für Lese-, Schreib- und Löschvorgänge in Java-Dateien vorgestellt.
Erhalten Sie die vom Konsolenbenutzer eingegebenen Informationen.
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; }
kann die vom Benutzer eingegebenen Informationen zurückgeben. Der Nachteil besteht darin, dass chinesische Eingaben nicht unterstützt werden und weitere Verbesserungen erforderlich sind.
2. Dateien kopieren
1. Dateien in Form eines Dateistreams kopieren
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(); }
Die Methode wurde getestet, unterstützt die chinesische Verarbeitung und kann mehrere Typen wie TXT, XML, JPG, Doc und andere Formate kopieren
3. Schreiben Sie Dateien
1 .Verwenden Sie PrintStream, um Dateien zu schreiben
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(); } }
2. Verwenden Sie StringBuffer, um Dateien zu schreiben
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(); }
Diese Methode kann festlegen, welche Codierung verwendet werden soll, um chinesische Probleme effektiv zu lösen.
4. Dateiumbenennung
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); } } }
5. Dateiverzeichnis übertragen
Das Übertragen eines Dateiverzeichnisses ist nicht dasselbe wie das Kopieren einer Datei. Das Kopieren einer Datei bedeutet, dass die Datei nach dem Kopieren in beiden Verzeichnissen vorhanden ist, während das Übertragen eines Dateiverzeichnisses bedeutet, dass die Datei nach der Übertragung nur im neuen Verzeichnis vorhanden ist.
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); } } }
6. Dateien lesen
1. Verwenden Sie FileInputStream, um Dateien zu lesen
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(); }
2. Verwenden Sie BufferedReader zum Lesen
Bei E/A-Vorgängen ist es effizienter, BufferedReader und BufferedWriter zu verwenden
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(); }
3 .Verwenden Sie dom4j, um XML-Dateien zu lesen
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; }
7. Dateien (Ordner) erstellen
1. Ordner erstellen
public void createDir(String path)...{ File dir=new File(path); if(!dir.exists()) dir.mkdir(); }
2. Neue Dateien erstellen
public void createFile(String path,String filename) throws IOException...{ File file=new File(path+"/"+filename); if(!file.exists()) file.createNewFile(); }
8. Dateien löschen (Verzeichnis)
1. Dateien löschen
public void delFile(String path,String filename)...{ File file=new File(path+"/"+filename); if(file.exists()&&file.isFile()) file.delete(); }
2. Verzeichnisse löschen
Verwenden Sie beim Löschen delete() In einem Verzeichnis müssen Sie sicherstellen, dass sich keine Dateien oder Unterverzeichnisse im Verzeichnis befinden. Andernfalls schlägt das Löschen fehl. Wenn wir in praktischen Anwendungen ein Verzeichnis löschen möchten, müssen wir daher alle Unterverzeichnisse und Dateien im Verzeichnis mithilfe der Rekursion löschen , und löschen Sie dann das Verzeichnis.
public void delDir(String path)...{ File dir=new File(path); if(dir.exists())...{ File[] tmp=dir.listFiles(); for(int i=0;i<tmp.length;i++)...{ if(tmp[i].isDirectory())...{ delDir(path+"/"+tmp[i].getName()); } else...{ tmp[i].delete(); } } dir.delete(); } }
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Java-Implementierung des Lesens, Schreibens und Löschens von Dateiverzeichnissen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!