public static void ReadFileFromByte(String fileName){
//file对象
File file = new File(fileName);
//打开文件输入流
try {
InputStream in = new FileInputStream(file);
//读取数据
int readBy = 0;
while ((readBy = in.read()) != -1) {
//System.out.write((char)readBy);
//System.out.write(readBy);
//System.out.print(readBy);
System.out.print((char)readBy);
}
//关闭文件
in.close();
} catch (IOException e) {
e.getStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String fileName = "E:\\exercise\\java\\20080627\\FileInputStream\\src\\com\\lwj\\ReadFromFile.java";
ReadFileFromByte(fileName); }}
为什么System.out.write(readBy);能读汉字字符,它不是一个字节一个字节读取的吗?汉字不是字符吗?
System.out.write((char)readBy);也不会报错?
System.out.print((char)readBy);为什么不能读汉字字符?
很迷惑 希望大家帮忙
//file对象
File file = new File(fileName);
//打开文件输入流
try {
InputStream in = new FileInputStream(file);
//读取数据
int readBy = 0;
while ((readBy = in.read()) != -1) {
//System.out.write((char)readBy);
//System.out.write(readBy);
//System.out.print(readBy);
System.out.print((char)readBy);
}
//关闭文件
in.close();
} catch (IOException e) {
e.getStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String fileName = "E:\\exercise\\java\\20080627\\FileInputStream\\src\\com\\lwj\\ReadFromFile.java";
ReadFileFromByte(fileName); }}
为什么System.out.write(readBy);能读汉字字符,它不是一个字节一个字节读取的吗?汉字不是字符吗?
System.out.write((char)readBy);也不会报错?
System.out.print((char)readBy);为什么不能读汉字字符?
很迷惑 希望大家帮忙
解决方案 »
- java 测试Piped* 报错,求大神指点,谢谢!
- JAVA问题求解
- equals()在基本类型的包装类中的问题?????????
- 如何清除JTable中的内容
- java 讀取html文件內容
- 在Table里加一列checkbox,如何实现当选上一个checkbox时,那一行的数据都能取出
- 哭求jcreator的配置方法!!
- 多线程有几种表示方法,都是什么?同步有几种实现方法,都是什么?
- 简单的JDBC classpath设置的问题 在线等 解决问题后 分不是问题
- java里有没有像javascript那样eval的用法啊
- SWT 拖放窗体 可能不是SWT.DragDetect
- 多线程问题?
楼主【li_589】截止到2008-06-27 17:13:55的历史汇总数据(不包括此帖):
发帖数:1 发帖分:100
结贴数:0 结贴分:0
未结数:1 未结分:100
结贴率:0.00 % 结分率:0.00 %
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;public class IOTest { public static void ReadFileFromByte(String fileName) {
//file对象
File file = new File(fileName);
//打开文件输入流
try {
InputStream in = new FileInputStream(file);
//读取数据
int readBy = 0;
while ((readBy = in.read()) != -1) {
//System.out.write((char)readBy);
//System.out.write(readBy);
//System.out.print(readBy);
System.out.print((char)readBy);
}
//关闭文件
in.close();
} catch (IOException e) {
e.getStackTrace();
}
} public static void main(String[] args) {
String fileName = "E:\\exercise\\java\\20080627\\FileInputStream\\src\\com\\lwj\\ReadFromFile.java";
ReadFileFromByte(fileName);
}}
格式化下先
一般汉字多为双字节或多字节编码的,也就是每个汉字字符需要至少两个字节才能表示和存储(根据文本文件编码不同每个汉字用多少个字节表示也不一定),而你读取到的是一个字节(很可能只是半个汉字的编码)。
UTF-8每个字符可能用一个两个或三个字节编码,Unicode每字符用2个或4个字节编码,GBK用两个字节编码字符,这些跟char有关系吗?在Java内部每个字符(无论哪国语言)都是Unicode编码的,基本每个字符对应一个char(16位2个字节)。
是一个一个字节读的...汉字是字符在java中主要有两种流形式....字节流 和 字符流字节流的基类主要是InputStream和OutPutStream
字符流的基类主要是Redaer和Writer一定要区别开二者的关系.....字节流的就都要用字节流的处理形式字符流的就都要字符流的处理形式