一连串流动的字符,以先进先出的方式发送信息的通道
分类
按流向分:输入流和输出流
输入流:用代码读取文本
注:准备一个带有内容的文本,在控制台展示出来
输出流:从代码块写入文本中
注:提前准备好一个空白的文本,在文本中添加内容
按处理单位分:字节流和字符流
字节流:1234acdz
字符流:djfi123汉字
关键代码
字节输出流
File file=new File("流.txt");//创建一个文件 OutputStream outputStream=new FileOutputStream(file,true);//创建一个输出流 String str="123jkvjkvsdjvksdkjcsdjkvjd";//声明一个字符串 byte[] bytes = str.getBytes();//把该字符串转化为字节 outputStream.write(bytes,3,3);//输出 outputStream.close();
字符输出流
String str="abc123这个老师有点帅";//要写入的字符串 File file1=new File( "abc.txt");//要写入的文件 Writer writer = new FileWriter(file1);// 写入器:执行写入的 那个对象 writer.write(str);//写入器字符串写入流26 writer.flush();//冲刷 管道
字节输入流
方法一:一次读到指定字节数组
File file=new File("流.txt"); InputStream inputStream=new FileInputStream(file);//创建一个输入流 byte[]bytes=new byte[inputStream.available()];//声明一个byte类型的数组,其长度为inputStream可 inputStream.read(bytes); System.out.println(new String(bytes));
方法二:逐个字读
File file=new File("lxl.txt"); InputStream inputStream=new FileInputStream(file); int read; while ((read=inputStream.read())!=-1){ System.out.print((char) read); } inputStream.close();
字符输入流
File file1 = new File( "abc.txt");//要读取的文件
Reader reader = new FileReader(file1);//创建读取器
char[] chars = new char[999];//读到的东西 存放的字符数组
reader.read(chars);//读
System.out.println(new String(chars).trim());//将字符数组的空格去掉
增强字符输出流:(减少内存占用)
File file=new File("av.txt"); FileWriter fileWriter=new FileWriter(file); BufferedWriter bufferedWriter=new BufferedWriter(fileWriter); String stc="光滑的狮眼石"; bufferedWriter.write(stc); bufferedWriter.newLine(); String str="技术部VS考核人"; bufferedWriter.write(str); bufferedWriter.newLine(); bufferedWriter.flush(); fileWriter.close(); bufferedWriter.close(); File file=new File("av.txt"); FileReader fileReader=new FileReader(file); BufferedReader bufferedReader=new BufferedReader(fileReader);
增强字符输入流
File file=new File("abc.txt"); FileReader fileReader= new FileReader(file); BufferedReader bufferedReader=new BufferedReader(fileReader); String line; while ((line=bufferedReader.readLine())!=null){ System.out.println(line); } bufferedReader.close(); fileReader.close();
数据操作流 (二进制)
File file1=new File("D://C.HØPE.jpg");
FileInputStream fileInputStream=new FileInputStream(file1);
DataInputStream in=new DataInputStream(fileInputStream);
File file2=new File("D://数据流.jpg");
FileOutputStream fileOutputStream=new FileOutputStream(file1);
DataOutputStream out=new DataOutputStream(fileOutputStream) ;
int read;
while ((read=in.read())!=-1){
out.write(read);
}
out.close();
fileOutputStream.close();
in.close();
fileInputStream.close();