请帮助理解我的java基础知识
据我所知,bytes原语可以存储-127到127之间的值=因此只有Ascii值可以存储在字节原语或字节数组中。 我们通常将图像,音乐和音频文件存储在字节原语或字节数组中,因为这些文件包含介于-127到127之间的值。 无法在字节数组中存储Unicode值,因为这些值最多可达65536 -
为什么我们通常更喜欢将从文件中读取的字节存储到bytearray中?..为什么不将这些字节存入int数组?
我在word文档中有中文字符。 我使用inputstream(而不是读者类)来读取doc文件并复制它。将Inputstream读入字节数组,然后将其写入输出文件。 中文字符的值大于128,那么如何将它们存储在字节数组中?我以为我们应该只使用读者类(不是INPUTSTREAM)来读取具有UNICODE字符的word文档。
final String file="E:\\Users\\17496382.WUDIP\\Desktop\\chin.doc";
final String file1="E:\\Users\\17496382.WUDIP\\Desktop\\chin1.doc";
InputStream inputStream = new FileInputStream(file);
OutputStream out = new FileOutputStream(file1);
byte[] buffer = new byte[1024];
int bytesRead;
while((bytesRead = inputStream.read(buffer))!=-1) {
out.write(buffer);
System.out.println(Arrays.toString(buffer));
}
答案 0 :(得分:1)
因为文件总是字节。它们也可能是其他东西(例如各种编码中的字符),但它们总是字节。
编码用于将字符转换为一个或多个字节,允许字符集中包含超过255个字符。