黑马程序员——Java I/O

------- android培训、java培训、期待与您交流! ----------

Java I/O流系统
流:流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。
IO流的概述:IO流用来处理设备之间的数据传输。Java对数据的操作是通过流的方式。Java用于操作流的对象都在io包中。流按操作数据分为两种:字节流和字符流。流按流向分为:输入流,输出流。字符流是为了处理文本格式编码而存在的。
IO流常用的基类:字节流的抽象基类:InputStream,OutputStream  字符流的抽象基类:Reader,Writer.这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。
字符流:Writer,Reader
Writer
FileWriter的特点
package io;
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterDemo {
public static void main(String[] args) throws IOException {
// 创建一个FileWriter对象,该对象被初始化的时候要求必须明确要操作的文件。也就是说没有无参的构造函数。
//创建的文件放在指定的目录下,如果该目录下有同名的文件,那么原文件将被新文件覆
FileWriter fw = new FileWriter("D:\\heimaio\\filedemo.txt");
// 调用write方法将字符串写入到流中
  fw.write("abcd");
// 将数据刷到目的地中。 
  fw.flush();
//关闭流资源,但是关闭之前会刷新一次内部缓存中的数据。 
  
// 和flush的区别:flush刷新后,流可以继续使用,close刷新后,会将流关闭。
  fw.close(); 
 }
}

io异常的专业处理方式:
package io;
import java.io.FileWriter;
import java.io.IOException;

public class FileWriterDemo2 {
 public static void main(String[] args) {
  FileWriter fw = null;
  try {
   fw = new FileWriter("d:\\heimaio\\filedemo2.txt");
   fw.write("gekuillwf");
  } catch (IOException e) {

  } finally {
   try {
    // 在关闭流之前,需要判断下流是否被创建成功,如果fw没有被创建成功,那么就会抛空指针异常。
    if (fw != null)
     fw.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
 }
}
文件的续写:
考虑从哪里入手。如果再开启一个流对象对指定的文件进行续写,那么就得从构造函数入手。
FileWriter("d:\\heimaio\\filedemo2.txt",true);如果目录下的文件已经存在,那么就在原文件的末尾处进行续写,如果该文件不存在,那么就直接创建一个新的文件。


Reader
文件文本读取方式一:
  FileReader fr= null;
  try {
//在读取硬盘上的文件的时候,首先硬盘上面得存在这个文件。
//也就是说,在创建FileReader对象的时候,必须在构造函数上有相应的关联硬盘文件的实参。
//肯定也会抛异常,因为可能给的实参信息不正确造成FileReader对象没有被创建出来。
fr = new FileReader("d:\\heimaio\\filereaderdemo.txt");
//read()方法的特点:每次读取一个字符,而且自动往下读。0-65535,也就是两个字节0000 0000-1111 1111,转成一个int整型数。
//当读取的整数值是-1时候,读到了文件的末尾。此时结束。
   int ch=0;
    while((ch=fr.read())!=-1){
     System.out.println((char)ch);
    }
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  }catch(IOException e){
   e.printStackTrace();
  } finally{
   if(fr!=null)
   try {
    fr.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
  }  
 
文件文本读取方式二:
fr = new FileReader("d:\\heimaio\\filereaderdemo2.txt");
   // 定义一个缓存char[],每次读取的时候,根据缓存的最大容量进行读取返回读取的num。并将读取的数存入到char[]中。
   // 如果读取的字符的个数小于缓存的容量,读取几个是几个。
   // 如果文件中字符个数大于缓存的容量,每次读取的数据会将上次读取后存在缓存的数据给覆盖,覆盖顺序从前往后。
   char[] cbuf = new char[1024];
   int num = 0;
   while ((num = fr.read(cbuf)) != -1) {
    System.out.println(new String(cbuf, 0, num));
   }

文件的拷贝:
用字符流读取硬盘上的文件。然后再用FileWriter写入到其他目录下的同名文件。
 private static void copyText() {
  FileReader fr = null;
  FileWriter fw = null;
  try {
   fr = new FileReader("d:\\heimaio\\filedemo.txt");
   fw = new FileWriter("c:\\filedemo.txt");
   char[] cbuf = new char[1024];
   int num = 0;
   while ((num = fr.read(cbuf)) != -1) {
    String str = new String(cbuf, 0, num);
    // 每读取一次,就将数据写入到指定的文本中。
    fw.write(str);
   }
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  } finally {
   if (fr != null) {
    try {
     fr.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
   if (fw != null) {
    try {
     fw.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }
 }
字符流的缓冲区
概述:缓冲区的出现提高了对数据的读写效率(提高流的读写效率,避免了重复的对硬盘进行擦写而浪费的大量时间)。对应的类:BufferedWriter BufferedReader,缓冲区要结合流才可以使用。在流的基础上对流的功能进行增强。
BufferWriter 
 
FileWriter fw = null;
 BufferedWriter bw = null;
  try {
   // 创建一个字符写入流。
fw = new FileWriter("d:\\heimaio\\bufferedwriterdemo.txt");
   // 为了提高流的效率加入了缓冲区技术。
   bw = new BufferedWriter(fw);
   bw.write("huanchongqu shuju ");
   //该缓冲区提供了一个跨平台的换行符方法。
   bw.newLine();
        // 只要用到缓冲区就要记得刷新  
             bw.flush();
  } catch (IOException e) {
   e.printStackTrace();
  } finally {
   // 关闭缓冲区,就是在关闭缓冲区中的流对象。
   if (bw != null) {
    try {
     bw.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }

BufferedWriter
//创建一个读取流对象和文件相关联。
   fr = new FileReader("d:\\heimaio\\BufferedReaderDemo.txt");
//为了提高效率加入缓冲技术
   br = new BufferedReader(fr);
   String str = null;
   int num = 0;
//该缓冲区提供了一个读一行的方法readLine(),方便于对文本数据的获取,当返回null时候,表示读到文件末尾。
   while ((str = br.readLine()) != null) {
    num++;
    System.out.println(str + num);
   }
通过缓存区复制一个文件
  fr = new FileReader("d:\\heimaio\\CopyTextByBuf.txt");
   fw = new FileWriter("c:\\CopyTextByBuf.txt");
   br = new BufferedReader(fr);
   bw = new BufferedWriter(fw);
   String line = null;   
// 读取源文件中的每一行数据,一行一行地写给指定目录下的同名文件。readLine()方法返回的时候只返回回车符之前的数据,並不反回回车符。其实底层用的还是read()方法,读取每一行的数据存储在内存中。读到\r\n为一行。
while ((line = br.readLine()) != null) {
    bw.write(line);
    bw.newLine();
    bw.flush();
   }
自己做的缓冲区实现readLine():
public String myReadline() throws IOException {
  int ch = 0;
  StringBuilder sb = new StringBuilder();
  while ((ch = r.read()) != -1) {
   if ((char) ch == '\r')
    continue;
   if ((char) ch == '\n')
    break;
   // 不应该在这个地方返回,因为返回的时候只有读到\r\n时候才能有数据返回。
   sb.append((char) ch);
  }
  // 只要sb里面有数据就要返回。
  if (sb.toString().equals(""))
   return null;
  return sb.toString();
 }
装饰设计模式:
当想要对已有的对象进行功能的增强时,可以定义类,将已经有的对象传入,基于已经有的功能,并提供加强功能,那么自定义的该类成为装饰类,装饰类通常会通过构造方法接收被装饰的对象并基于被装饰对象的功能提供更强的功能。记着在面试答到该设计模式时候,举例:流和缓冲流。典型的是缓冲流中readLine()方法对read()方法的加强。
装饰和继承的区别:
装饰模式比继承要灵活。避免了继承体系臃肿。而且降低了类与类之间的关系。
装饰类因为增强了已有对象,具备的功能和已有的是相同。只不过是提供了更强的功能。所以装饰类和被装饰类通常都是属于一个体系中的。

LineNumberReader:
FileReader fr = new FileReader("d:\\heimaio\\LineNumberReaderDemo.txt");
// 利用了装饰模式的类,将fr作为参数被装饰。 
 LineNumberReader lnr = new LineNumberReader(fr);
// 里面增强了一个功能就是:获取行号。
 String line = null;
 while ((line = lnr.readLine()) != null) {
  System.out.println(lnr.getLineNumber()+line);
 }


4.字节流:OutputStream InputStream
//当想要操作图片的数据时候。这时候一定要使用字节流进行操作。
package io;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileStream {
public static void main(String[] args) {
// writeFile();
// readFile_1();
// readFile_2();
 readFile_3();
}
private static void readFile_3() {
 FileInputStream fis = null;
 try {
  fis = new FileInputStream("d:\\heimaio\\FileStream.txt");
//  available方法用来显示文件的字符个数,对于数据量较小的文件。可以使用该方法。因为它直接给出了缓存的大小,不需要再进行循环操作。
//  但是当数据量很大的时候,比如一个电影,那么这时候byte[] buf=new byte[fis.available()];
//  会出现内存溢出。这个方法应该慎用。
  int len = fis.available();
  byte[] buf= new byte[fis.available()];
  fis.read(buf);
//  int len1 = fis.available();
  System.out.println(new String(buf,0,len));
 } catch (FileNotFoundException e) {
  e.printStackTrace();
 } catch (IOException e) {
  e.printStackTrace();
 }finally{
  if(fis!=null){
   try {
    fis.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
 }
}
private static void readFile_2() {
 FileInputStream fis = null;
 try {
  fis = new FileInputStream("d:\\heimaio\\FileStream.txt");
  int len =0;
//  通过定义一个缓存进行读取,和字符流读取方式类似。
  byte[] buf = new byte[1024];
  while((len=fis.read(buf))!=-1){
   System.out.println(new String(buf,0,len));
  }
 } catch (FileNotFoundException e) {
  e.printStackTrace();
 } catch (IOException e) {
  e.printStackTrace();
 }finally{
  if(fis!=null){
   try {
    fis.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
 }
}

private static void readFile_1() {

 FileInputStream fis = null;
 try {
  fis = new FileInputStream("d:\\heimaio\\FileStream.txt");
  int ch=0;
//  一个一个字符的读,和字符流读取方式类似。
  while((ch=fis.read())!=-1){
   System.out.println((char)ch);
  }
 } catch (FileNotFoundException e) {
  e.printStackTrace();
 } catch (IOException e) {
  e.printStackTrace();
 }finally{
  if(fis!=null){
   try {
    fis.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
 }
}

private static void writeFile() {
 
 FileOutputStream fos = null;
 try {
  fos = new FileOutputStream("d:\\heimaio\\FileStream.txt");
  fos.write("gekui".getBytes());
//  为什么通过字节流写数据的时候不需要刷新。flush();
//  因为字节是计算机操作的最小基本单位,它不需要进行缓存而直接写到目标文件中
//  而字符流需要调用flush()的原因:是因为它需要进行缓存,因为它里面存的是字符
//  需要在内存中对字符进行特定的操作,如编码等。如果缓存的话,那么它读一个字节
//  就直接写入到目标文件里,也就是说读了一个字符的一般,这就会带来很多麻烦。
  
 } catch (FileNotFoundException e) {
  e.printStackTrace();
 } catch (IOException e) {
  e.printStackTrace();
 }finally{
  if(fos!=null){
   try {
    fos.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
 }
 
}

}
5.字节流的缓冲区
与字节流的缓冲区基本一样。都是利用装饰设计模式。首先得先定义一个流对象FileOutputStream fos = new FileOutputStream("d:\\heimaio\\FileStream.txt");将它作为参数传递给装饰类
BufferedOutputStream,然后再使用缓冲类(装饰类)里的加强方法对文件进行操作。例如:拷贝一段媒体文件。先将媒体文件读取到流中去,然后再将读取的数据写入到目标目录下。
注意:在进行数据读取时,read()方法其实是在对读取byte类型的数据进行int提升。内部用了b&255,将int型的前24位补零(用“&”的原因防止出现连续8个1的造成数据没有被有效读取就终止了读取操作)。而write(int)方法在写数据的时候,用了int的最低8位一个字节进行写操作。

读取键盘的录入:
InputStreamReader字节通向字符的桥梁,接收一个字节流参数。通过指定的编码将字节解码成字符。
OutputStreamWriter字符通向字节的桥梁,把一个字节写入流作为参数传递给该构造函数。此时,就有了要写入的文件。想往该文件中通过字符流写入数据,需要将字符流转换成字节流,硬盘上存在了字节数据,再通过文件的自行解码生成相应的文本文件。
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
read()方法是阻塞式方法,当键盘录入数据回车时候read方法才读取数据。如果没有数据的话,就在那里等待.

流操作的基本规律:
通过两个明确来完成。
1,明确源和目的。
源:输入流。InputStream Reader  目的:输出流。OutputStream Writer
2,操作的数据是否是纯文本。
是:字符流。 不是:字节流。
3,当体系明确后,在明确要使用哪个具体的对象。
通过设备来进行分区,源设备:内存,硬盘,键盘     目的设备:内存,硬盘,控制台。

改变标准输入输出设备:
System.setIn()可以将键盘源改变成其他源。System.setOut()可以将控制台目的改变成其他目的。
异常的日志信息:
日志信息的建立,我们在写程序的时候,经常会遇到一些异常信息。而一个完美的程序,往往会把一些关键性的异常信息,存储在一个特定的日志文件中以便程序员对系统的进一步完善。这个时候就需要用到流,将日志信息准确地存到指定日志文件中。示例代码:
 
void printStackTrace()
          将此 throwable 及其追踪输出至标准错误流。   
 void printStackTrace(PrintStream s)
          将此 throwable 及其追踪输出到指定的输出流。 
通过api提供的方法可以知道,系统默认的是将异常信息通过调用printStackTrace方法写入到控制台上面。我们可以通过流的特点,将信息存储到指定的文件上去。有两种方法:
System.setOut();改变标准输出流
printStackTrace(PintStream s )方法,s=new PrintStream(“文件”);

python基础:工作会用到的95%的基础python代码都在这了(万字详解!) 本文是一份Python编程语言的快速参考备忘单,涵盖了Python基础语法和常用数据类型。主要内容包括:Python入门指南(打印、变量声明)、内置数据类型(字符串、数值、列表、元组、集合、字典等)、控制结构(判断、循环)、函数定义、文件处理操作以及字符串操作方法(切片、循环遍历等)。这个备忘单特别适合初学者快速查阅Python基础语法,同时也提供了数据类型转换、f-string格式化字符串等实用技巧。通过简洁的代码示例展示了Python的基本语法规则和典型用法。 阅读详情

相关推荐

Python+Seaborn可视化:双因素方差分析结果这样呈现更专业

本文详细介绍了如何利用Python中的Seaborn和statsmodels库,专业地执行并可视化双因素方差分析结果。通过模拟实验数据,演示了从模型构建、统计检验(包括交互作用分析)到诊断验证的全流程。重点展示了如何使用Seaborn绘制交互效应图、组合分布图及热图,将复杂的统计结果转化为直观、富有洞察力的可视化图表,助力科研论文与商业报告的专业呈现。

weixin_29274969的博客 137

黑马程序员——Java I/O系统

流,file

332

从0到1,快速理清 | DeepSeek Harness

DeepSeek推出自研Harness开发平台,主打"一切皆插件"理念,将AI执行能力模块化为可自由组合的插件体系。带你从0到1,快速了解开发链路。

IT学习博客 674

黑马程序员-java基础——I/O

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------- 详细请查看:www.itheima.com

dsw00523的专栏 348

基于matlab的轴承损伤分析动力学建模仿真

高质量的轴承在正确的使用下,可以使用很长一段时间,如果过早的出现损伤,很可能是因为选型错误,使用不当或润滑不良造成的。因此,在安装轴承时,我们需要记录机器种类,安装部位,使用条件及周围配合。通过研究总结轴承损伤的类型,发生问题时的使用环境,以避免类似情况再次发生。轴承损伤方式按下述图片分类,我们可以图片中显示的主要特征来判断轴承损伤形式。01、压痕碰伤卡入固体异物或冲击造成的表面凹坑及安装是的擦伤◆固体异物侵入◆在倾斜状态下安装◆安装不良造成的撞击,脱落◆卡入剥离片◆改善安装、使用方法。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 2667

外向交货单批次赋值的标准姿势:用 BAPI_OUTB_DELIVERY_CHANGE 把 LIPS-CHARG 改得稳、改得干净

摘要: 外向交货单批次赋值涉及严格的业务约束,包括批次管理状态、单据状态、拆分规则等,直接更新表 LIPS 不可取。推荐使用 BAPI_OUTB_DELIVERY_CHANGE 接口,通过标准业务逻辑实现批次修改。关键点包括:区分单批次分配与批次拆分场景,正确设置 ITEM_CONTROL 控制结构,并确保单位/数量数据完整。附可直接执行的ABAP代码示例,实现安全可靠的批次更新流程。 (字数:149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 396

黑马程序员java I/O系统1

------- android培训、java培训、期待与您交流! ---------- 黑马程序员java I/O系统1 File类的对象,表示了磁盘上的文件或目录,提供了与平台无关的方法来对磁盘上的文件或目录操作。File类描述了文件本身的属性,用来获取或处理磁盘文件相关的信息,例如权限,时间,日期和目录路径。File类还可以浏览子目录层次结构。目录管理的主要方法为:mkdir()根据抽

lamstudyingnet的专栏 497

Android Jetpack 最全面试题及参考答案

要使用 WorkManager 定义一个异步任务,以下是详细步骤。首先,需要创建一个继承自 Worker 类的自定义类,这个类代表了要执行的具体任务逻辑。// 在这里编写具体的任务逻辑,比如从网络下载文件try {在上述代码中,doWork方法就是任务的核心执行逻辑所在,这里模拟了从给定的 URL 下载文件到本地的操作,若下载成功返回,若出现异常则返回。然后,在需要调度任务的地方,比如在某个 Activity 或者 Fragment 中,通过构建 WorkRequest 来安排任务执行。

大模型大数据攻城狮的专栏 1894

黑马程序员_Java I/O 技术

------- android培训、java培训、期待与您交流! ---------- 输入/输出处理是程序设计中非常重要的一部分,比如从键盘读取数据、从文件中读取数据或向文件中写数据等等。Java把这些不同类型的输入、输出源抽象为流(stream),用统一接口来表示,从而使程序简单明了。 Jdk 提供了包java.io,其中包括一系列的类来实现输入/输出处理。进行I/O操作时可能会产

QQ153194574的专栏 620

vue支付项目-APP支付宝支付功能

如果用户已安装支付宝客户端,商家 App 唤起支付宝完成支付,支付完后跳回到商家 App 内,最后展示支付结果。如果用户没有安装支付宝客户端,商家 App 内会调起支付宝网页支付收银台,用户登录支付宝账号,支付完后展示支付结果。1.点击按钮开通或者续费,会验证是否选择会员商品以及对协议是否查看选中(这里根据项目需要自行验证,可忽略),验证通过打开选择支付方式弹窗页面,选择微信支付或者支付宝支付;4.可取消支付,放弃支付会返回会员页面,页面提示支付取消;1.判断支付方式,如果是2,则是支付宝支付方式。

总结前端开发中遇到的问题,分享前端知识 1万+

SAP CAP core data service 里 association 和 composition 的区别

我们进行 SAP CAP 开发时,在schema.cds里进行数据建模,可以使用 association 和 composition,来描述两个 entity 之间的关联关系。在 SAP BTP 的 Cloud Application Programming Model (CAP) 中,cds文件定义了数据模型,而和是用于建立实体关系的两种关键机制。理解它们的区别对于构建高效、清晰的 CAP 数据模型至关重要。下面,我们将通过严谨的逻辑推理,结合代码示例,深入分析和之间的核心差异。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 322

【黑马程序员】java I/O 学习总结

---------- ASP.Net+Unity开发、.Net培训、期待与您交流! -------- /**  * (1)路径分隔符,一般在windows版本的java中使用正斜杠"/",如果使用反斜杠要转义"\\"  *   * (2)File的renameTo(File newName)方法不仅是重命名,还会根据newName中的路径移动  * 文件位置,无法跨文件系统,目标目录

进击的程序猿 549

Python实战:打造学生信息管理系统

通过本教程,我们构建了一个简单的学生信息管理系统,实现了基本的添加、删除、修改和查询功能。当然,这个系统还有很多可以改进和扩展的地方,比如添加用户界面、增加数据持久化功能、支持批量操作等。简介:本文将介绍如何使用Python编写一个功能齐全的学生信息管理系统,包括添加、删除、修改和查询学生信息的基本操作。学生信息管理系统是学校日常管理中不可或缺的一部分,它能够帮助管理人员快速、准确地管理学生信息,提高工作效率。为了实现上述功能,我们可以设计一个包含学生信息的字典,并使用函数来封装各个操作。

铭渊老黄 1489

黑马程序员Java I/O系统2

------- android培训、java培训、期待与您交流! ---------- 黑马程序员Java I/O系统2 装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。装饰模式可以在不创造更多子类的情况下,将对象的功能加以扩展。 若处理的数据量较多,为避免每个字节的读写都对流进行,可以使用过滤流类的子类缓冲流。缓冲流建立一个内部缓冲区,输入输出数据先读写到缓冲区中

lamstudyingnet的专栏 564

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

黑马程序员-java-I/O

 ---------------------- ASP.Net+Unity">http://www.itheima.com"target="blank">ASP.Net+Unity开发、.Net">http://www.itheima.com"target="blank">.Net培训、期待与您交流! ----------------------  java语言的输入输出功能是十分

LinsCode的专栏 852

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

黑马程序员:java I/O流

------- android培训、java培训、期待与您交流! ---------- 模板

u011373068的专栏 559

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

黑马程序员Java类之i/o流

---------------------- android培训、java培训、期待与您交流! ---------------------- 基本要点 1、 字符流与字节流,字节流不能处理Unicode,这个由字符流实现 2、 流的层次结构:建立在四个抽象类基础上 下面做一个字符输入流和字符输出流 package horse; import java.io.*; /**这是一个字符输

????的专栏 558

黑马程序员—JAVA基础之I/O

IO流概述 IO流主要用来处理设备之间的数据传输。就是说通过java的语言来处理设备上的数据,比如硬盘上的文件,内存中的数据。早期这些操作数据的方法通过封装,便形成了IO流对象。纵多的IO对象就形成了IO包。按照流向分为两大类:一个是输入流,一个是输出流。按照操作的数据分类又分为:字符流,字节流。(所有的数据原始的状态还是字节数据。字符的出现主要是通过一串的字节数据来表示字符,最后形成了一个字节

yxqcz的专栏 590

【黑马程序员】java I/O流浅谈

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------ 通过对I/O流的学习,让我懂得对于知识总结的重要性,通过总结可以让我对知识的理解更到位,而且对于知识点记忆的更加牢固, 一下是我通过学习教学视频中老师的总结所完成的对I/O流部分的总结: 因为流对象有很多,所以判断用哪个流对象就非常的重要~! 判断需要用什

u010036063的专栏 607

黑马程序员——java基础---I/O流

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、I/O流概述   概念:I/O流用来处理设备之间的数据传输。Java对数据的操作是通过流的方式,而操作流的对象都放在IO包中。   分类:     按操作数据分为:字符流与字节流。     按流向分为:输入流与输出流。    IO流常用基类:   ...

Sa916487698的博客 324

《Java基础入门第2版》--黑马程序员 课后答案及其详解 第7章 I/O流

文章目录一、填空题二、判断题三、选择题四、简答题五、编程题六、原题及其解析 一、填空题 1、 字节流、字符流 2、 Channel、Buffer 3、 InputStreamReader、OutputStreamWriter 4、 Buffer、Channel、Selector 5、RandomAccesseFile 二、判断题 1、 错 2、对 3、对 4、对 5、错 三、选择题 1、AB 2、C 3、AB 4、A 5、B 四、简答题 1、Java程序通过I/O流来完成输

hypertext123的博客 1万+

黑马程序员——Java I/O基础知识之I/O流

android培训、java培训、期待与您交流! I/O流基础知识——字节流和字符流 文件存储在硬盘中,是以二进制表示的,只有内存中才能形成字符。数据的来源可以有硬盘,内存,控制台,网络,Java把数据从一个地方转到另一个地方的现象称为流,用InputStream和OutputStream接口来表示,这...

weixin_30871701的博客 150

黑马程序员 第五篇 Java I/O (foundation, completed)

Java I/O 详解 foundation

Das20pct的博客 658

黑马程序员_Java中的I/O流

--------- android培训、java培训、期待与您交流! ---------- Java中的I/O流 Java中的流实际是数据(字节序列)流,使数据像流水一样通过用户规定的管道流淌汇聚。 IO包中的File类负责操作文件的属性信息,流负责操作数据。 Java中的流类型可以根据不同的角度进行分类。例如按数据流的方向分类,按处理数据的单位分类,按功能分类等等。

providence2712的专栏 310

黑马程序员————JAVA之I/O流

------- android培训、java培训、期待与您交流! ----------   一.IO流 1.概念 IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的类都在IO包中 流按流向分为两种:输入流,输出流。 流按操作类型分为两种:字节流与字符流。  字节流可以操作任何数据,字符流只能操作纯字符数据,比较方便。 2.IO流常用父类

King_D_L的专栏 674

黑马程序员-java i/o

----------------------android培训、java培训、期待与您交流! ----------------------         java的IO主要包括两种IO操作:输入流和输出流。每种输入,输出流又可以分为字节流和字符流两大类。其中字节流以字节为单位来处理输入、输出操作,而字符流则以字符来处理输入、输出操作。         1.1 File 类:File类

427
上一篇: 黑马程序员——字符编码
下一篇: 黑马程序员——File类与特殊流
nigel521
博客等级 码龄15年 0粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值