private static void writeConstructors(final ClassEditor ce,
			final DataOutputStream dos) throws IOException {

		// Sort constructors by their signatures
		final SortedSet sorted = new TreeSet(new Comparator() {
			public int compare(Object o1, Object o2) {
				MethodEditor me1 = (MethodEditor) o1;
				MethodEditor me2 = (MethodEditor) o2;
				return (me1.type().descriptor().compareTo(me2.type()
						.descriptor()));
			}
		});

		final MethodInfo[] methods = ce.methods();
		for (int i = 0; i < methods.length; i++) {
			final MethodEditor me = new MethodEditor(ce, methods[i]);
			if (me.name().equals("<init>")) {
				if (!me.isPrivate()) {
					// Ignore private constructors
					sorted.add(me);
				}
			}
		}

		final Iterator iter = sorted.iterator();
		while (iter.hasNext()) {
			final MethodEditor init = (MethodEditor) iter.next();
			dos.writeUTF("<init>");
			dos.writeInt(SerialVersionUID.getModifiers(init));
			dos.writeUTF(init.type().descriptor());
		}
	}