在Java中,数据的传输方式有两种:字符流和字节流。
字符流
字符流以字符为单位进行传输,每个字符占用两个字节。Java字符流包括Reader和Writer两个抽象类及其子类。
// 示例:使用字符流读取文件内容 File file = new File("test.txt"); try (Reader reader = new FileReader(file)) { char[] buf = new char[1024]; int len = -1; while ((len = reader.read(buf)) != -1) { System.out.println(new String(buf, 0, len)); } } catch (IOException e) { e.printStackTrace(); }
在示例中,我们使用了FileReader类读取文件内容,并通过char数组进行缓冲处理。
字节流
字节流以字节为单位进行传输,一次读取一个字节。Java字节流包括InputStream和OutputStream两个抽象类及其子类。
// 示例:使用字节流写入文件内容 File file = new File("test.txt"); try (OutputStream out = new FileOutputStream(file)) { String s = "Hello, Java!"; out.write(s.getBytes()); } catch (IOException e) { e.printStackTrace(); }
在示例中,我们使用了FileOutputStream类将字符串写入文件,并通过getBytes()方法将字符串转换为字节数组。
总结
字符流和字节流各有各的长处,开发者应根据具体的场景来选择使用哪种方式。