字节流/字符流的输入输出
package learning;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;
public class IOStreamDemo {
//输入字节流InputStream、输出字节流OutputStream
//输入字符流Reader、输出字符流Writer
//字符流设有缓冲区,对字节(二进制)数据进行处理,因此便于处理中文
//字节流更通用
public static void main(String[] args) throws IOException {
File f=new File("D:"+File.separator+"IOStream"+File.separator+"IO.txt");
if(!f.getParentFile().exists()) {
f.getParentFile().mkdirs();
}
OutputStream output=new FileOutputStream(f); //通过子类实例化
String str1="test words.";
output.write(str1.getBytes());
output.close();
InputStream input=new FileInputStream(f);
byte[] data=new byte[256];
int len1=input.read(data); //读取数据保存在字节数组中,返回读取的字节个数
System.out.println("["+new String(data,0,len1)+"]");
input.close();
Writer w=new FileWriter(f,true);
String str2="line3\r\n";
w.write(str2);
w.append(str2); //创建Writer时加true、或者用append,从而追加内容
w.close(); //不关闭又要从缓冲区输出,用flush
Reader r=new FileReader(f);
char[] buffer=new char[256];
int len2=r.read(buffer);
System.out.println(new String(buffer,0,len2));
r.close();
}
}
分类:
JavaSE
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?