1.文件常见方法
boolean flag=f.exists();         //文件是否存在
    flag=f.isFile();          //是否是文件
    flag=f.isDirectory();      //是否是目录
    str=f.getPath();        //获得文件的相对路径
    str=f.getAbsolutePath();   //获得文件的绝对路径
    str=f.getName();          //获得文件名
    flag=f.delete();         //删除文件
    flag=f.createNewFile();    //创建文件
    long=f.length(); //返回文件长度
  注意:File不能操作文件内容

   

public static void main(String[] args) {

  //File f=new File("文件路径")
  //"\\"表示转义\
   //"/"表示/
    File f=new File("e:/a.txt");
    System.out.println(f);
  
  //文件是否存在
  boolean flag=f.exists();
  System.out.println(flag);
  
  //是否是文件
   flag=f.isFile();
   System.out.println(flag);
  
   //是否是目录
   flag=f.isDirectory();
   System.out.println(flag);

  //获取文件相对路径
    String path=f.getPath();
      System.out.println(path);
 
   //获取文件的绝对路径
     path=f.getAbsolutePath();
     System.out.println(path);

  //获取名字
     String name=f.getName();
     System.out.println(name);
  
     //删除文件或者目录
     flag=f.delete();
     System.out.println(flag);

//创建(检查异常)
    try {
      flag=f.createNewFile();
     System.out.println(flag);
    } catch (IOException e) {
     e.printStackTrace();
   }

   //长度
    System.out.println(f.length());
}

 

2.InputStream/OutputStream
  文件:FileInputStream/FileOutputStream
  2.1 FileInputStream(输入流)
    数据从文件到java代码中。
    int read(); //读取一个字节
    int read(byte[]); //读取一串字节
    long avaliable; //文件长度
  2.2 FileInputStream(字节文件输入流)
    new FileInputStream(File);
    new FileInputStream("文件路径+文件名");

   

public static void main(String[] args) {
//文件内容
File f=new File("src/a.txt");
try {
//英文和中午翻译
//码表
InputStream is=new FileInputStream(f);
int b=is.read(); //1:1的unicode编码
System.out.println((char)b);
b=is.read();
System.out.println((char)b);
is.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

 

  2.3 FileOutputStream(输出流)
    数据从java代码中,写到文件或者其他介质中。
    void write(字节); //写入一个字节
    void write(byte[]); //写入字节数组
  2.4 FileOutputStream
    new FileOutputStream(File);
    new FileOutputStream("文件路径+文件名");
    new FileOutputStream("文件路径+文件名",true);
  注意:a.boolean:表示是否向文件末尾追加,如果是true,表示追加,false表示不追加(也就是覆盖),默认值为false
     b.创建FileOutputStream实例时,如果相应的文件并不存在,则会自动创建一个空的文件。

   

public static void main(String[] args) throws Exception{
File f=new File("src/a.txt");
OutputStream os=new FileOutputStream(f);
os.write(97);
os.close();
}

 

3.Reader/Writer(字符流)

  3.1 FileReader

    int b=fr.read(); //读取一个字符
    int length=fr.read(char[]); //读取字符数组
  3.2 FileWriter
    fw.write(char); //写一个字符
    fw.write(char[]); //写字符数组
  3.3BufferedReader(字符输入缓冲流)
    BufferedReader br=new BufferedReader(new FileReader("文件路径"));
    String str=br.readLine(); //读取一行字符
  3.4BufferedWriter(字符输出缓冲流)
    BufferedWriter bw=new BufferedWriter(new FileWriter("文件路径"));
    bw.write(字符串);

  注意:a.能够用文本编辑器打开的文件,不乱码就是字符文件
     b.能够用文本编辑器打开乱码的,就是字节文件

public class TestChar {
public static void main(String[] args) throws Exception {
// read();
write();
}

/**
* 字符输出流Writer
* @throws IOException
*/
private static void write() throws IOException {
Writer w=new FileWriter("src/a.txt");
char[] cs={'钓','鱼','岛','是','中','国','的'};
w.write(cs);
w.close();
}

/**
* 字符输入流Reader
* @throws Exception
*/
private static void read() throws Exception{
Reader r=new FileReader("src/d.txt");
// int b=r.read();
// System.out.println((char)b);

char[] chars=new char[1024];
int length=r.read(chars);
System.out.println(Arrays.toString(chars));
}
}

 

public class TestBuffer {
public static void main(String[] args) throws Exception {
buReader();
buWriter();

}

private static void buWriter() throws Exception {
BufferedWriter bw=new BufferedWriter(new FileWriter("src/a.txt"));
bw.write("我是中国人");
//刷新缓存
bw.flush();
//默认执行flush(),关闭管道
bw.close();
}

private static void buReader() throws Exception {
BufferedReader br=new BufferedReader(new FileReader("src/d.txt"));
//读取一行记录
// String str=br.readLine();
// str=br.readLine();
// System.out.println(str);

String str;
while((str=br.readLine())!=null){
System.out.println(str);
}
}

}

 

I/O的方法、输入流和输出流的更多相关文章

  1. java中的IO流(输入流与输出流)概述与总结

    Java中IO流,输入输出流概述与总结 总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都 ...

  2. C++输入流和输出流、缓冲区

    一.C++输入流和输出流 输入和输出的概念是相对程序而言的. 键盘输入数据到程序叫标准输入,程序数据输出到显示器叫标准输出,标准输入和标准输出统称为标准I/O,文件的输入和输出叫文件I/O. cout ...

  3. 牛客网Java刷题知识点之输入流、输出流、字节流、字符流、字节流的抽象基类(InputStream、OutputStream)、字符流的抽象基类(Reader、Writer)、FileWriter、FileReader

    不多说,直接上干货! IO流用来处理设备之间的数据传输. java对数据的操作是通过流的方式. java用于操作流的对象都在IO包中. IO流按操作数据分为两种:字节流和字符流. IO流按流向分为:输 ...

  4. [Java开发之路](8)输入流和输出流

    1. Java流的分类 按流向分: 输入流: 能够从当中读入一个字节序列的对象称作输入流. 输出流: 能够向当中写入一个字节序列的对象称作输出流. 这些字节序列的来源地和目的地能够是文件,并且通常都是 ...

  5. Java的IO流以及输入流与输出流的异同

    一:流的基本概念:           Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.J ...

  6. Java:字节流和字符流(输入流和输出流)

    本文内容: 什么是流 字节流 字符流 首发日期:2018-07-24 什么是流 流是个抽象的概念,是对输入输出设备的抽象,输入流可以看作一个输入通道,输出流可以看作一个输出通道. 输入流是相对程序而言 ...

  7. 转载:Java:字节流和字符流(输入流和输出流)

    本文内容: 什么是流 字节流 字符流 首发日期:2018-07-24 什么是流 流是个抽象的概念,是对输入输出设备的抽象,输入流可以看作一个输入通道,输出流可以看作一个输出通道. 输入流是相对程序而言 ...

  8. java基础49 IO流技术(对象输入流/对象输出流)

    1.对象输入输出流 对象注意作用是用于写对象信息与读取对象信息 1.对象输出流:ObjectOutputStream    2.对象输入流:ObjectInputStream 2.对象输入输出流的步骤 ...

  9. Java基础:浅谈数据输入流/数据输出流《DataInputstream类与DataOutputstream类》

     一.理论概述 数据输入/输出流(DataInputStream类与DataOutputStream类) 允许应用程序以与机器无关的方式从底层输入流中读取基本Java数据类型. 说白了就是,当读取一个 ...

随机推荐

  1. Linux指令od和hexdump

    Linux指令:od (octal dump) 示例用法:od -c hello Linux指令:od od命令用户通常使用od命令查看特殊格式的文件内容.通过指定该命令的不同选项可以以十进制.八进制 ...

  2. python16_day08【异常、多线程】

    一.反射及相关 1.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() isinstance(ob ...

  3. yum速查

    yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包, 能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖 ...

  4. OpenFileDialog.Filter 属性

    如果 Filter 属性为 Empty,将显示所有文件. 始终显示文件夹. Filter 由以下部分组成:筛选器说明,后跟竖线 (|) 和筛选模式. 筛选器可以指定一个或多个文件类型. 说明描述了对话 ...

  5. hadoop26----netty,多个handler

    k客户端: package cn.itcast_03_netty.sendorder.client; import io.netty.bootstrap.Bootstrap; import io.ne ...

  6. Apache 日志管理

    日志参数 %% 百分号(Apache2.0.44或更高的版本) %a 远端IP地址 %A 本机IP地址 %B 除HTTP头以外传送的字节数 %b 以CLF格式显示的除HTTP头以外传送的字节数,也就是 ...

  7. Docker与自动化测试及其测试实践

    Docker 与自动化测试 对于重复枯燥的手动测试任务,可以考虑将其进行自动化改造.自动化的成本在于自动化程序的编写和维护,而收益在于节省了手动执行用例的时间.简而言之,如果收益大于成本,测试任务就有 ...

  8. jQuery带缩略图的宽屏焦点图插件

    在线演示 本地下载

  9. (补充一)CountDownLatch

    引言:  在学习单例模式时候,用到了锁synchronized的概念,在多线程中又用到了CountDownLatch的概念 CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待, ...

  10. ElasticSearch高可用集群环境搭建和分片原理

    1.ES是如何实现分布式高并发全文检索 2.简单介绍ES分片Shards分片技术 3.为什么ES主分片对应的备分片不在同一台节点存放 4.索引的主分片定义好后为什么不能做修改 5.ES如何实现高可用容 ...