使用System.out.write打印到控制台

时间:2010-11-10 13:22:06

标签: java

这是家庭作业问题。

问题:

  
    

“使用大小为10的整数数组,并使用write()方法打印数组的内容。

         

注意:请不要使用System.out.println()方法。“

  

这是我到目前为止所尝试的,但它不起作用。

int i = 0;
while (i != array.length) {
  byte[] temp = new byte[4];
  temp[0] = (byte) (array[i] & 256);
  array[i] = array[i] >> 8;
  temp[1] = (byte) (array[i] & 256);
  array[i] = array[i] >> 8;
  temp[2] = (byte) (array[i] & 256);
  array[i] = array[i] >> 8;
  temp[3] = (byte) (array[i] & 256);
  System.out.write(temp, 0, 4);
  i++;
}

我找不到办法,请帮帮我。

提前致谢。 :)

4 个答案:

答案 0 :(得分:3)

void printInt(int x) {
  String s = String.valueOf(x);
  for(int i = 0; i < s.length(); i++) {
     System.out.write(s.charAt(i));
  }
  System.out.write('\n');
}

编辑:更漂亮:

void printInt(int x) {
  String s = String.valueOf(x);
  System.out.write(s.getBytes());
  System.out.write('\n')
}

答案 1 :(得分:0)

有一个大小为10的整数数组,即int[] i = new int[10],并在System.out.write(int b)中将每个数组写入write()方法接受整数作为参数。


这真的很丑陋但它确实有效......

/**
 * 
 */
package testcases;

import java.io.IOException;
import java.io.UnsupportedEncodingException;

/**
 * @author The Elite Gentleman
 *
 */
public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] array = {10, 20, 30, 40, 50};

        StringBuffer sb = new StringBuffer();
        for (int i: array) {
            sb.append(String.valueOf(i));
        }

        try {
            System.out.write(sb.toString().getBytes("UTF-8"));
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

答案 2 :(得分:0)

为什么要创建一个字节数组? 有一个write(int b)方法。

Integer array = new Integer[10];
// populate array with some integers
for (Integer i : array) {
    System.out.write((int)i);
}

即使是演员(int)我也不需要,因为自动装箱会照顾它。

答案 3 :(得分:0)

诀窍是将int的每个数字转换为char。然后使用System.out.write编写字符。
因此,例如,如果其中一个int值为91.您需要执行
System.out.write('9');
System.out.write('1');
System.out.flush();