Sachverhalt: A. Die Staatsanwaltschaft IV des Kantons Zürich führt ein Strafverfahren gegen den aus der Türkei stammenden X._. Sie wirft ihm vor, am 29. März 2010, um ca. 00.25 Uhr, im Lokal des Türkischen Vereins in Y._ jemanden mit einem Messer angegriffen und ihm damit eine 19 cm lange Schnittverletzung im Bauch zugefügt zu haben. Am 30. März 2010 nahm die Polizei X._ fest. Tags darauf versetzte ihn der Haftrichter des Bezirksgerichts Zürich in Untersuchungshaft. Am 10. Juni 2010 ersuchte X._ um Haftentlassung. Am 11. Juni 2010 beantragte die Staatsanwaltschaft die Abweisung des Gesuchs und die Verlängerung der Untersuchungshaft um drei Monate. Am 17. Juni 2010 wies der Haftrichter das Haftentlassungsgesuch ab und verfügte die Fortsetzung der Haft bis zum 30. September 2010. Er bejahte den dringenden Verdacht der vorsätzlichen schweren Körperverletzung und Kollusionsgefahr. Ob überdies Fluchtgefahr gegeben sei, liess er offen. Ersatzmassnahmen erachtete er als ungeeignet. Die Haft beurteilte er als verhältnismässig. B. X._ führt Beschwerde in Strafsachen mit dem Antrag, der Entscheid des Haftrichters sei aufzuheben und der Beschwerdeführer umgehend aus der Haft zu entlassen. Eventualiter sei die Haftentlassung mit angemessenen Auflagen bzw. Ersatzmassnahmen zu verbinden. C. Der Haftrichter hat auf Vernehmlassung verzichtet. Die Staatsanwaltschaft verweist unter Verzicht auf weitere Bemerkungen auf ihre Ausführungen in der Eingabe vom 11. Juni 2010 an den Haftrichter, ihre früheren Anträge sowie die Erwägungen im angefochtenen Entscheid. X._ hat auf eine Stellungnahme zur Eingabe der Staatsanwaltschaft verzichtet.