java 学习笔记之 流、文件的操作

ava 学习笔记之 流、文件的操作

对于一些基础的知识,这里不再过多的解释,

简单的文件查询过滤操作

package com.wfu.ch08;

import java.io.File;
import java.io.FilenameFilter;

public class Test1 {        

    public static void main(String[] args) {

        File file=new File("F:\\2017-2018-1\\javase");
//      //获取该目录下,所有的文件或目录的名字组成的字符串数组
//      String[] list=file.list();
//      //遍历list
//      for(String str:list){
//          System.out.println(str);
//      }

//      File[] list=file.listFiles();
//      //遍历文件数组list
//      for(File f:list){
//          if(f.isDirectory()){
//              System.out.println("目录:"+f.getName());
//          }
//          else{
//              System.out.println("文件:"+f.getName());
//          }
//      }

//引用外部类实现过滤器功能

        MyFilter filter=new MyFilter();
        String[] list=file.list(filter);
        for(String str:list)
               {
            System.out.println(str);
        }

//      File file=new File("d:\\test.txt");
//      System.out.println("是目录吗?"+file.isDirectory());
//      System.out.println("文件大小"+file.length());
//      System.out.println("文件名:"+file.getName());
//      System.out.println("文件路径"+file.getPath());
//      Date date=new Date(file.lastModified());
//      System.out.println("最后修改时间为:"+date);
//      System.out.println("是文件吗?"+file.isFile());

    }
}

//外部类实现过滤,因为FilenameFilter 是没有实现类的,所以只好我们自己写啦
class MyFilter implements FilenameFilter{

    @Override
    public boolean accept(File dr, String name) {
        // TODO Auto-generated method stub
        if(name.endsWith(".doc")||name.endsWith(".docx")){
            return true;
        }
        else{
            return false;
        }
    }

}

内部类举例

package com.wfu.ch08;

import java.io.File;
import java.io.FilenameFilter;

public class Test2 {
    public static void main(String[] args) {
        File file=new File("F:\\2017-2018-1\\javase");
        Test2 t=new Test2();
        Test2.MyFilter filter=t.new MyFilter();
        String[] list=file.list(filter);
        for(String s:list){
            System.out.println(s);
        }
    }
        //这个类写在了类 Test2 中,所以是内部类,在调用内部类是一定要声明对象啊啊啊啊啊
    class MyFilter implements FilenameFilter{

        @Override
        public boolean accept(File arg0, String arg1) {
            // TODO Auto-generated method stub
            if(arg1.endsWith(".doc")||arg1.endsWith(".docx")){
                return true;
            }
            else{
                return false;
            }
        }

    }

}

匿名类举例

package com.wfu.ch08;

import java.io.File;
import java.io.FilenameFilter;

public class Test3 {
    public static void main(String[] args) {
        File file=new File("F:\\2017-2018-1\\javase");

                //这里的没有写类的名字,而是直接写的实现方法,这样就是匿名的内部类
        String[] list=file.list(new FilenameFilter(){//这个地方本来是不能直接使用接口的,但是,因为下面的实现类也写上了,所也这里实质山是调用的实现类,而不是接口
            @Override
            public boolean accept(File arg0, String arg1) {
                // TODO Auto-generated method stub
                if(arg1.endsWith(".doc")||arg1.endsWith(".docx")){
                    return true;
                }
                else{
                    return false;
                }
            }

        });
        for(String s:list){
            System.out.println(s);
        }
    }

}

流、文件的操作简单举例

package wfu;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class Test3 {
    public static void main(String[] args) throws IOException {
        FileOutputStream out = new FileOutputStream("d:\\test2.txt");
        String str = "This is a bug";
        out.write(str.getBytes());//写入字符数组
        //out.close();
        FileInputStream input = new FileInputStream("d:\\test2.txt");
        byte[] b = new byte[1024];
        input.read(b);
        System.out.println(new String(b));
        //input.close();

        FileOutputStream outto = new FileOutputStream("f:\\test2.txt");
        out.write(str.getBytes());
        out.close();

//
//      //利用字节流的话会出现中文乱码
//      //所以说如果有中文的话还是用字符流比较好
//      FileInputStream input = new FileInputStream("d:\\test.txt");
//      int x = input.read();
//      do{
//          System.out.print((char)x);
//          x= input.read();
//      }while(x!=-1);
//      //关闭流
//      input.close();
//      

//      //创建文件字节输入流
//      InputStream input = new FileInputStream("d:\\test.txt");
//
//      //在输入流中读数据
//      byte[] b = new byte[1024];
//      input.read(b);
//      System.out.println(new String(b));//转换成字符串
//      //关闭
//      input.close();
//      //创建文件输出流
//      OutputStream out = new FileOutputStream("d:\\test1.txt");//文件不存在就自动创建一个,如果有的话,就执行此文件
//      out.write(b);
//      out.close();

    }

}
时间: 2024-10-25 17:24:44

java 学习笔记之 流、文件的操作的相关文章

Java学习笔记七(文件夹操作)

1.介绍 上一篇博客介绍的是java中常用的操作文件的方式,本篇博客着重讲解一下,在Java中是如何来操作文件夹的.主要是利用的是Java.IO包下面的File类,本篇博客着重讲解一下该类的构造函数和常用的方法. 2.File类的字段摘要 File类为我们提供了与系统有关的路径分割符,字段分别如下 static String pathSeparator:返回值为字符串,结果表示分号; static char pathSeparatorChar:返回值为char类型,结果表示分号 static c

JAVA学习笔记 -- 把资源文件打包到jar包

初学GUI,用Eclipse导出jar包,设定的最小化图标不能显示(hello.png文件放在项目的根目录下).代码如下: import javax.swing.JFrame; import java.awt.Toolkit; import java.awt.Image; import java.net.URL; public class GUITest { public static void main(String[] args) { JFrame frame = new JFrame();

Java学习笔记--字符串和文件IO

1.Java中的字符串类和字符的表示 2.区分String,StringBuilder和StringBuffer 3.从命令行中给main方法传递参数 4.文件操作 1 Java中的字符串和字符 1.1 String类 字符串就是由一系列的字符组成的序列,在很多语言中,比如C语言,将其存储在一个数组中.现在运用Java的思想,就要将字符串视为一个对象,其中Java规定的String类有11个构造方法,同时还有至少40种实现的方法,通过String类的学习,可以很好地了解面向对象的类和对象的思想.

java学习笔记 处理流之数据流

以前写数据如double类型 3.1415926,写进文件必须把这个Double类型转换成字符串写进去,这样做一是比较麻烦,二是如果数据比较长,那么占用内存空间会很大(实际上一个Double类型在内存中占用64位既8个字节). DataOutputStream和DataInputStream类的适用来解决这一问题,可以把这8个字节直接写入内存里面. DataOutputStream和DataInputStream类都是处理流,既包在管道上的管道. 操作示例 import java.io.*; p

Serlvet学习笔记之四—对文件的操作

1.读文件 package com.demo; import java.io.BufferedReader; import java.io.FileReader; import java.io.PrintWriter; import javax.servlet.http.*; public class ServletFileTest1 extends HttpServlet { public void doGet(HttpServletRequest req,HttpServletRespons

java学习笔记--IO流

第十二章大纲: I/O input/output 输入/输出 一.创建文件,借助File类来实现 file.createNewFile() : 创建文件 file.exists() : 判断文件是否存在,如果存在,则返回true delete() : 删除文件,如果删除成功,则返回true deleteOnExit() : 程序退出的时候才删除文件 二.创建文件夹 exists() : 判断文件夹是否存在,如果存在,则返回true delete() : 删除文件夹,如果删除成功,则返回true

Java学习笔记——Socket实现文件传输

我越是逃离,却越是靠近你. 我越是背过脸,却越是看见你. 我从你开始, 我在你结束. 需求:实现局域网下socket传输文件. 客户端步骤: 1.建立与服务器的连接 2.创建client输出流 3.创建输入流,绑定本地文件 4.读取文件后输出给服务器 服务器端步骤: 1.启动服务器 2.创建accept输入流 3.创建输出流绑定本地文件 4.读取客户端信息写入本地文件 1.字节流传输文件. 1 public class Client { 2 3 public static void main(S

Java学习之IO流(其他操作流 【操作基本数据类型、操作字节数组、操作字符数组、操作字符串】)

操作基本数据类型DataInputStream.DataOutputStream 1 DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.txt")); 2 dos.writeUTF("你好"); 3 dos.close(); 4 5 DataInputStream dis = new DataInputStream(new FileInputStream("data

java学习笔记16--I/O流和文件

本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理设备之间的数据传输,对数据的操作是通过流的方式,Java用于操作流的对象都在IO包中 输入/输出流可以从以下几个方面进行分类 从流的方向划分: 输入流.输出流 从流的分工划分: 节点流.处理流 从流的内容划分: 面向字符的流.面向字节的流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对