- 字符流的出现是为了更方便的操作中文,因为字节流每次只能读取一个字节,而中文有多个字节组成,所以会出现的乱码的效果
- 字符流: 即字节流+码表
- 字符流和字节流的使用场景:若需拷贝,常使用字节流…若操作纯文本文件,使用字符流
- 字符流_编码、解码
public class Test06 {
public static void main(String[] args) throws UnsupportedEncodingException {
String s = "大吉大利";
byte[] bytes = s.getBytes();
System.out.println(Arrays.toString(bytes));
String s1 = "今晚吃鸡";
byte[] gbks = s1.getBytes("gbk");
System.out.println(Arrays.toString(gbks));
byte[] bytes3 = {-27, -92, -89, -27, -112, -119, -27, -92, -89, -27, -120, -87};
String s2 = new String(bytes);
System.out.println(s2);
byte[] bytes1 = {-67, -15, -51, -19, -77, -44, -68, -90};
String s3 = new String(bytes1,"gbk");
System.out.println(s3);
}
}
public class Tets07 {
public static void main(String[] args) throws IOException {
FileWriter fileWriter = new FileWriter("D:\\file\\f.txt");
fileWriter.write(97);
fileWriter.flush();
fileWriter.close();
FileWriter fileWriter1 = new FileWriter("D:\\file\\f.txt");
char[] chars = {97,98,99,100};
fileWriter1.write(chars);
fileWriter1.flush();
fileWriter1.close();
fileWriter1.write("\r\n");
FileWriter fileWriter2 = new FileWriter("D:\\file\\f.txt");
char[] chars1 = {97,98,99,100,101};
fileWriter2.write(chars1,0,2);
fileWriter2.close();
}
}
public class Test08 {
public static void main(String[] args) throws IOException {
FileReader fileReader = new FileReader("D:\\file\\f.txt");
int read = fileReader.read();
System.out.println(read);
char[] chars = new char[1024];
int ch;
while ((ch=fileReader.read(chars))!=-1){
System.out.println(new String(chars,0,ch));
}
}
}
public class Test09 {
public static void main(String[] args) throws IOException {
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("D:\\file\\f.txt"));
bufferedWriter.write(97);
bufferedWriter.newLine();
bufferedWriter.write(98);
bufferedWriter.newLine();
bufferedWriter.write(99);
bufferedWriter.newLine();
bufferedWriter.close();
BufferedReader bufferedReader = new BufferedReader(new FileReader("D:\\file\\f.txt"));
String ch;
while ((ch=bufferedReader.readLine())!=null){
System.out.println(ch);
}
}
}