Author: jvermillard
Date: Thu Feb 14 09:02:43 2008
New Revision: 627802

URL: http://svn.apache.org/viewvc?rev=627802&view=rev
Log:
using mmaped files

Modified:
    
mina/asyncweb/trunk/examples/src/main/java/org/apache/asyncweb/examples/file/FileHttpService.java

Modified: 
mina/asyncweb/trunk/examples/src/main/java/org/apache/asyncweb/examples/file/FileHttpService.java
URL: 
http://svn.apache.org/viewvc/mina/asyncweb/trunk/examples/src/main/java/org/apache/asyncweb/examples/file/FileHttpService.java?rev=627802&r1=627801&r2=627802&view=diff
==============================================================================
--- 
mina/asyncweb/trunk/examples/src/main/java/org/apache/asyncweb/examples/file/FileHttpService.java
 (original)
+++ 
mina/asyncweb/trunk/examples/src/main/java/org/apache/asyncweb/examples/file/FileHttpService.java
 Thu Feb 14 09:02:43 2008
@@ -21,9 +21,11 @@
 package org.apache.asyncweb.examples.file;
 
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.FilenameFilter;
 import java.io.RandomAccessFile;
 import java.net.URI;
+import java.nio.MappedByteBuffer;
 import java.nio.channels.FileChannel;
 import java.security.InvalidParameterException;
 import java.util.regex.Pattern;
@@ -168,19 +170,11 @@
 
             response.setStatus(HttpResponseStatus.OK);
 
-            FileChannel fileChannel = (new RandomAccessFile(f, "r"))
-                    .getChannel();
-
-            // TODO : well it's quite explosive on big files, need to change 
the API
-
-            int fileSize = (int) fileChannel.size();
-            IoBuffer responseBuffer = IoBuffer.allocate(fileSize);
-
-            fileChannel.read(responseBuffer.buf());
-            fileChannel.close();
-
-            responseBuffer.flip();
-            response.setContent(responseBuffer);
+            RandomAccessFile raf = new RandomAccessFile(f, "r");
+            FileChannel fc = raf.getChannel();
+            MappedByteBuffer buffer = fc.map(FileChannel.MapMode.READ_ONLY, 0, 
fc.size());
+            response.setContent(IoBuffer.wrap(buffer));
+            fc.close();
 
         } else {
             // the file is not found, we send the famous 404 error


Reply via email to