今天在练习io流的时候出现了一些问题
read读出来的数字一直比文本字符大,多的会输出空格
并且不管输入什么中文字符串首字符都是乱码

今天在练习io流的时候出现了一些问题
read读出来的数字一直比文本字符大,多的会输出空格
并且不管输入什么中文字符串首字符都是乱码

两个问题, 其实楼上已经给出代码了, 这里我解释下
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("a.txt"),"gbk");
String s ="春风扶栏露华浓";
//1.1 字符串转成字符数组
char[] c = s.toCharArray();
//1.2 开始写入文件
osw.write(c);
//1.3 释放资源
osw.close();
//2. 读取文件
//2.1 获取输入流, 用转换流 编码
InputStreamReader isr = new InputStreamReader(new FileInputStream("a.txt"), Charset.forName("gbk"));
//2.2 定义一个int类型的变量, 用来存 一次读取到数组中的长度
int len;
//2.3 定义一个char类型的数组, 用来存读取到的内容
char[] chars = new char[1024];
//2.4 读取内容到数组中, 每次读取的长度是 len
while ((len= isr.read(chars))!=-1){
//2.5 利用字符串的构造方法, 把char数组变成 字符串
String s1 = new String(chars,0,len);
System.out.println(s1);
}
//2.6 释放资源
isr.close();
```