use DataOutputStream