Slik kopierer du en fil i JSP

Java tilbyr ikke en ryddig og pen one-liner for å kopiere filer. Men Java fil input-output (I / O) klasser gjør det ganske enkelt å skrive din egen filkopiering funksjonalitet. Kom i gang med å skrive den filkopiering funksjonalitet som skriptlet koden direkte i din Java ServerPages (JSP) side.

Bruksanvisning

Grunnleggende og Catch Clause

1 Importer Java-klasser du trenger for å lese og skrive filer ved hjelp av siden direktivet i JSP side:

<% @ Side import = \ "java.io. * \"%>

2 Lag en try-catch-blokken i din JSP side for å håndtere IOException:

<%
try {}
fangst (IOException ex) {}
%>

3 Håndtak IOException feil inne i fangsten klausul som trengs for JSP-siden til å mislykkes grasiøst. Skriv ut unntak meldingen i grelle farger inn JSP-siden ved å bryte ut av skriptlet kode:

fangst (IOException ex) {%>
<Strong style = "color: red; background-color: gull; ">
<% = Ex.getMessage ()%>
</ Strong>
<%}

Try Block

4 Åpne kildefilen (filen du vil kopiere) og målfilen (hvor kopien vil bli skrevet til) inne i try-blokken. SrcFileName og dstFileName er strengvariabler som inneholder banen og filnavnet for hver fil:

Fil srcFile = new File (srcFileName)

Fil dstFile = new File (dstFileName);

5 Kontroller at kildefilen finnes, og kaste en IOException hvis det ikke:

if (! srcFile.exists ()) {
kaste nytt IOException (\ "No kildefilen: \" + srcFileName)

}

6 Sjekk at målfilen eksisterer og er skrivbar. Kast en IOException hvis det ikke:

if (dstFile.exists ()) {
if (! dstFile.canWrite ()) {

throw new IOException(\&quot;Destination read-only: \&quot; + dstFileName)


}
}
else {
kaste nytt IOException (\ "Destinasjon ikke opprettet: \" + dstFileName)

}

7 Åpen kildekode og målfil bekker:

Fileinput srcStrm = new Fileinputstream (srcFile)

Fileoutputstream dstStrm = new Fileoutputstream (dstFile);

8 Lag en byte array å holde data:

byte [] buf = ny byte [4096];

9 Lese fra kildestrømmen og skrive til destinasjonen strøm på en stund loop som fortsetter til alle data har blitt lest fra kildefilen:

int len

while ((len = srcStrm.read (BUF))> 0) {
dstStrm.write (buf, 0, len)

}

10 Lukk fil bekker:

srcStrm.close ()

dstStrm.close ();

Hint

  • Ta det til neste nivå ved å lage din filkopiering funksjonalitet en Javabean eller tilpasset tag handler klasse. Opprette en egendefinert kode som tar kilden og målet filer som parametre. Denne praksisen vil gjøre filkopiering metode gjenbrukbare og holde JSP side fri for unødvendig skriptlet kode.
  • Håndtere alle unntak. Ubehandlede unntak kan føre til dine besøkende se sider av stygge Java feilmeldinger.
  • Husk, JSP sider er server-side-programmer, så kilden og målet for filkopiering er på webserveren.