diff --git a/msgpack-core/src/main/java/org/msgpack/core/MessagePack.java b/msgpack-core/src/main/java/org/msgpack/core/MessagePack.java
index <HASH>..<HASH> 100644
--- a/msgpack-core/src/main/java/org/msgpack/core/MessagePack.java
+++ b/msgpack-core/src/main/java/org/msgpack/core/MessagePack.java
@@ -87,13 +87,16 @@ public class MessagePack {
     }
 
     public static MessagePacker newPacker(OutputStream out) {
-        // TODO
-        return null;
+        if(out instanceof FileOutputStream) {
+            return newPacker(((FileOutputStream) out).getChannel());
+        }
+        else {
+            return new MessagePacker(new MessageBufferOutputStream(out));
+        }
     }
 
     public static MessagePacker newPacker(WritableByteChannel out) {
-        // TODO
-        return null;
+        return new MessagePacker(new MessageBufferOutputChannel(out));
     }
 
     /**
Add an utility method for creating MessagePacker