JAVA基础学习day21--IO流三-File、Properties、PrintWriter与合并、分割流

一、File

1.1、File概述

文件和目录路径名的抽象表示形式。

用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录。此类呈现分层路径名的一个抽象的、与系统无关的视图。抽象路径名 有两个组件:

  1. 一个可选的与系统有关的前缀 字符串,比如盘符,"/" 表示 UNIX 中的根目录,"\\\\" 表示 Microsoft Windows UNC 路径名。
  2. 零个或更多字符串名称 的序列。

字段摘要
static String pathSeparator
与系统有关的路径分隔符,为了方便,它被表示为一个字符串。
static char pathSeparatorChar

与系统有关的路径分隔符。

static String separator

与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。

static char separatorChar

与系统有关的默认名称分隔符。

构造方法摘要
File(File parent, String child)
根据
parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String pathname)

通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。

File(String parent, String child)
根据
parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
File(URI uri)

通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File
实例。

方法摘要
boolean canExecute()

测试应用程序是否可以执行此抽象路径名表示的文件。

boolean canRead()

测试应用程序是否可以读取此抽象路径名表示的文件。

boolean canWrite()

测试应用程序是否可以修改此抽象路径名表示的文件。

int compareTo(File pathname)

按字母顺序比较两个抽象路径名。

boolean createNewFile()

当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。

static File createTempFile(String prefix, String suffix)

在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。

static File createTempFile(String prefix, String suffix, File directory)

在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。

boolean delete()

删除此抽象路径名表示的文件或目录。

void deleteOnExit()

在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。

boolean equals(Object obj)

测试此抽象路径名与给定对象是否相等。

boolean exists()

测试此抽象路径名表示的文件或目录是否存在。

File getAbsoluteFile()

返回此抽象路径名的绝对路径名形式。

String getAbsolutePath()

返回此抽象路径名的绝对路径名字符串。

File getCanonicalFile()

返回此抽象路径名的规范形式。

String getCanonicalPath()

返回此抽象路径名的规范路径名字符串。

long getFreeSpace()

返回此抽象路径名指定的分区中未分配的字节数。

String getName()

返回由此抽象路径名表示的文件或目录的名称。

String getParent()

返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null

File getParentFile()

返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null

String getPath()

将此抽象路径名转换为一个路径名字符串。

long getTotalSpace()

返回此抽象路径名指定的分区大小。

long getUsableSpace()

返回此抽象路径名指定的分区上可用于此虚拟机的字节数。

int hashCode()

计算此抽象路径名的哈希码。

boolean isAbsolute()

测试此抽象路径名是否为绝对路径名。

boolean isDirectory()

测试此抽象路径名表示的文件是否是一个目录。

boolean isFile()

测试此抽象路径名表示的文件是否是一个标准文件。

boolean isHidden()

测试此抽象路径名指定的文件是否是一个隐藏文件。

long lastModified()

返回此抽象路径名表示的文件最后一次被修改的时间。

long length()

返回由此抽象路径名表示的文件的长度。

String[] list()

返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。

String[] list(FilenameFilter filter)

返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。

File[] listFiles()

返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。

File[] listFiles(FileFilter filter)

返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。

File[] listFiles(FilenameFilter filter)

返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。

static File[] listRoots()

列出可用的文件系统根。

boolean mkdir()

创建此抽象路径名指定的目录。

boolean mkdirs()

创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。

boolean renameTo(File dest)

重新命名此抽象路径名表示的文件。

boolean setExecutable(boolean executable)

设置此抽象路径名所有者执行权限的一个便捷方法。

boolean setExecutable(boolean executable,
boolean ownerOnly)

设置此抽象路径名的所有者或所有用户的执行权限。
boolean setLastModified(long time)

设置此抽象路径名指定的文件或目录的最后一次修改时间。

boolean setReadable(boolean readable)

设置此抽象路径名所有者读权限的一个便捷方法。

boolean setReadable(boolean readable,
boolean ownerOnly)

设置此抽象路径名的所有者或所有用户的读权限。
boolean setReadOnly()

标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。

boolean setWritable(boolean writable)

设置此抽象路径名所有者写权限的一个便捷方法。

boolean setWritable(boolean writable,
boolean ownerOnly)

设置此抽象路径名的所有者或所有用户的写权限。
String toString()

返回此抽象路径名的路径名字符串。

URI toURI()

构造一个表示此抽象路径名的 file: URI。

URL toURL()

已过时。 此方法不会自动转义 URL 中的非法字符。建议新的代码使用以下方式将抽象路径名转换为 URL:首先通过
toURI 方法将其转换为
URI,然后通过 URI.toURL
方法将 URI 装换为 URL。

1.2、File创建与删除

import java.io.*;
class FileDemo1
{
    public static void main(String[] args)
    {
        method1();
    }
    public static void method1()
    {
        //创建File对象
        File f1=new File("a.txt");
        //第二种
        File f2=new File("d:\\abc","b.txt");
        //第三种
        File dir=new File("d:\\bcd");
        File f3=new File(dir,"c.txt");

        //使用分隔符
        File f4=new File("d:"+File.separator+"abc"+File.separator+"d.txt");
        //输出
        System.out.println("f1="+f1);//a.txt
        System.out.println("f2="+f2);//d:\abc\b.txt
        System.out.println("f3="+f3);//d:\bcd\c.txt
        System.out.println("f4="+f4);//d:\abc\d.txt

    }
}

创建文件

//创建文件,在指定位置创建文件,如果该文件已经存在,则不创建,返回 false
    public static void method1() throws IOException
    {
        File f=new File("d:\\file.txt");
        //创建
        sop("create: "+f.createNewFile());
        //删除,删除失败返回false
        //sop("delete:"+f.delete());
        //在退出时删除指定文件
        f.deleteOnExit();

    }

1.3、File判断 File获取

package com.pb.day20.io.file;

import java.io.File;
import java.io.IOException;

public class FileDemo2 {

    public static void main(String[] args) throws IOException {
        File f1=new File("d:\\a.txt");
        File f2=new File("e:\\c.txt");
        File dir1=new File("d:\\dbc");
        File dir2=new File("d:\\dbc\\dd\\aa\\d\\f\\dsf\\fsd");
        //判断文件是否存在,不存在就创建
        if(!f1.exists()){
            f1.createNewFile();
        }
        //判断文件夹是否存在
        if(!dir1.exists()){
            dir1.mkdir();//创建一层文件夹
        }
        //创建多层文件夹
        if(!dir2.exists()){
            dir2.mkdirs();
        }
        //判断
        sop("f1是文件吗?"+f1.isFile());
        sop("dir1是文件夹吗?"+dir1.isDirectory());
        sop("f1是可执行文件吗?"+f1.canExecute());
        sop("f1可读吗?"+f1.canRead());
        sop("f1可写吗?"+f1.canWrite());
        sop("f1是隐藏文件吗?"+f1.isHidden());
        //获取文件信息
        sop(f1.getName());//文件名
        sop(f1.getPath());//相对路径
        sop(f1.getAbsolutePath());//获取绝对路径,返回值是字符串
        sop(f1.getAbsoluteFile());//获取绝对路径,返回值是File类对象
        sop(f1.lastModified());//最后修改时间 长整型
        sop(f1.length());//文件字节大小,长整型
        //重命名
        sop(f1.renameTo(f2));//剪切的作用

    }
    public static void sop(Object obj){
        System.out.println(obj);
    }

}

1.4、File文件列表

package com.pb.day20.io.file;

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

public class FileDemo3 {

    public static void main(String[] args) {
        method3();

    }
    //列出当前目录下的指定文件
    public static void method3(){
        File f=new File("d:\\");
        File [] files=f.listFiles(new FilenameFilter() {

            @Override
            public boolean accept(File dir, String name) {
                //返回txt文件
                return  name.endsWith(".txt");
            }
        });
        for(File ff:files){
            System.out.println(ff.getName()+"..."+ff.length());
        }
    }

    //列表当前目录下的所有文件包含文件夹名字
    public static void method2(){
        File f=new File("c:\\");
        String [] names=f.list();//必须是目录,否则就是空指针异常
        for(String s:names){
            System.out.println(s);
        }
    }

    //列出当前系统的所有盘符
    public static void method1(){
        File [] files=File.listRoots();
        for(File f:files){
            System.out.println(f);
        }

    }

}

1.6、File列出所有递归

package com.pb.day20.io.file;
/**
 * 递归调用,
 * 列表指定目录下的,所有文件包括子目录中的文件
 */
import java.io.File;

public class FileDemo4 {

    public static void main(String[] args) {
        File dir=new File("d:\\");
        getFiles(dir);
    }

    //递归
    public static void getFiles(File dir){
        System.out.println(dir);
        //获取文件数组,列表
        File[] files=dir.listFiles();
        //遍历
        for(File file:files){
            //判断是不是文件夹
        if(file.isDirectory()){
            //是文件夹就再次调用
            getFiles(file);
        }else{
            //不是就列表
            System.out.println(file);
        }
        }
    }

}

递归:

限定条件

注意递归的次数,尽量避免内存溢出

1.7、File删除带文件的目录

package com.pb.day20.io.file;

import java.io.File;

public class FileDemo5 {

    public static void main(String[] args) {
        File dir=new File("d:\\kk");
        removeDir(dir);
    }
    //删除,带有文件的多层文件夹
    public static void removeDir(File dir){
        File [] files =dir.listFiles();
        for(int x=0;x<files.length;x++){
            if(files[x].isDirectory()){
                removeDir(files[x]);
            }else{
                //删除文件
            System.out.println(files[x]+"----file----"+files[x].delete());
            }
        }
        //删除空文件夹
        System.out.println(dir+"----dir----"+dir.delete());

    }

}

1.8、将一个文件夹的的所有文件,包含子目录都复制要另一个目录下

/*
将一个文件夹的的所有文件,包含子目录都复制要另一个目录下
*/
import java.io.*;
class IOCopy
{
    public static void main(String[] args)
    {
        //源文件
        File src=new File("D:\\music");
        //目的文件
        File des=new File("e:\\test");
        copyDir(src,des);
        System.out.println("复制完成!");
    }

    /*
    递归复制
    */
    public static void copyDir(File src,File des)
    {
        //获取列表
        File[] files=src.listFiles();
        //判断目标文件是否存在
        if(!des.exists()){
            //创建目录
            des.mkdir();
        }
        //遍历
        for(File f:files)
        {
            //判断是不是目录
            if(f.isDirectory())
            {
                //获取路径,拼接文件名,再次调用自己
            copyDir(new File(f.getPath()),new File(des+"\\"+f.getName()));
            //是不是文件
            }else if (f.isFile())
            {
                //复制
                copyFile(new File(f.getPath()),new File(des+"\\"+f.getName()));
            }

        }

    }
    //使用IO流复制文件
    public static void copyFile(File src,File des)
    {
        BufferedInputStream bis=null;
        BufferedOutputStream bos=null;
        try
        {
            bis=new BufferedInputStream(new FileInputStream(src));
            bos=new BufferedOutputStream(new FileOutputStream(des));
            //声明缓冲区
            int len=0;
            while((len=bis.read())!=-1)
            {
                bos.write(len);
            }

        }
        catch (IOException e)
        {
             e.printStackTrace();
        }finally
        {
            try
        {
            if(bos!=null)
                bos.close();
        }
        catch (IOException e)
        {
             e.printStackTrace();
        }
        try
        {
            if(bis!=null)
                bis.close();
        }
        catch (IOException e)
        {
             e.printStackTrace();
        }

        }
    }
}

二、Properties

2.1、Properties概述

构造方法摘要
Properties()
创建一个无默认值的空属性列表。
Properties(Properties defaults)

创建一个带有指定默认值的空属性列表。

方法摘要
String getProperty(String key)

用指定的键在此属性列表中搜索属性。

String getProperty(String key, String defaultValue)

用指定的键在属性列表中搜索属性。

void list(PrintStream out)

将属性列表输出到指定的输出流。

void list(PrintWriter out)

将属性列表输出到指定的输出流。

void load(InputStream inStream)

从输入流中读取属性列表(键和元素对)。

void load(Reader reader)

按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。

void loadFromXML(InputStream in)

将指定输入流中由 XML 文档所表示的所有属性加载到此属性表中。

Enumeration<?> propertyNames()

返回属性列表中所有键的枚举,如果在主属性列表中未找到同名的键,则包括默认属性列表中不同的键。

void save(OutputStream out,
String comments)

已过时。 如果在保存属性列表时发生 I/O 错误,则此方法不抛出
IOException。保存属性列表的首选方法是通过 store(OutputStream out, String comments)
方法或 storeToXML(OutputStream os, String comment)
方法来进行。

Object setProperty(String key, String value)
调用
Hashtable 的方法 put
void store(OutputStream out,
String comments)

以适合使用 load(InputStream)
方法加载到 Properties 表中的格式,将此 Properties
表中的属性列表(键和元素对)写入输出流。

void store(Writer writer, String comments)

以适合使用 load(Reader)
方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。

void storeToXML(OutputStream os,
String comment)

发出一个表示此表中包含的所有属性的 XML 文档。

void storeToXML(OutputStream os,
String comment,
String encoding)

使用指定的编码发出一个表示此表中包含的所有属性的 XML 文档。

Set<String> stringPropertyNames()

返回此属性列表中的键集,其中该键及其对应值是字符串,如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键。

Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。

2.2、存取功能

public static void setAndGet(){
        //声明
        Properties prop=new Properties();
        //设置
        prop.setProperty("username", "root");
        prop.setProperty("password","root");
        //获取用户名对应的值
        System.out.println(prop.getProperty("username"));
        //修改密码
        prop.setProperty("password","root123");
        //获取全部key
        Set<String> keys=prop.stringPropertyNames();
        //遍历
        for(String s:keys){
            System.out.println(s+": "+prop.getProperty(s));
        }
    }

2.3、存取配置文件

    public static void method2() throws IOException {
        // 声明Properties集合
        Properties prop = new Properties();
        FileInputStream fis = new FileInputStream("D:/info.txt");

        FileOutputStream fos = new FileOutputStream("D:\\info.txt");

        //加载数组到集合
        prop.load(fis);
        System.out.println(prop);
        prop.list(System.out);

        //修改
        prop.setProperty("sex", "woman");
        prop.store(fos, "sex is woman");
        System.out.println(prop);
        fos.close();
        fis.close();
    }
    public static void method1() throws IOException {
        // 文件流
        BufferedReader br = new BufferedReader(new FileReader("D:\\info.txt"));
        // 声明Properties集合
        Properties prop = new Properties();
        String line = null;
        // 遍历
        while ((line = br.readLine()) != null) {
            // System.out.println(line);
            String[] arr = line.split("=");
            // System.out.println(arr[0]+"..."+arr[1]);
            prop.setProperty(arr[0], arr[1]);

        }
        System.out.println(prop);
        br.close();
    }

示例

public static void method() throws IOException{
        File file=new File("a.txt");

        //判断文件是否存在
        if(!file.exists()){
            file.createNewFile();
        }
        FileInputStream fis=new FileInputStream(file);
        //声明集合
        Properties prop=new Properties();
        prop.load(fis);
        int count=0;
        String value=prop.getProperty("times");
        if(value!=null){
            count=Integer.parseInt(value);
            //判断次数
            if(count>=5){
                System.out.println("使用次数已经用完,请续费!");
                return;
            }
        }
        //次数+1
        count++;
        //把KEY和VALUE放回去
        prop.setProperty("times", count+"");
        FileOutputStream fos=new FileOutputStream(file);
        prop.store(fos, "次数+1");
        fos.close();
        fis.close();
    }

三、PrintWriter与序列流

3.1、PrintWriter与PrintStream

package com.pb.io.properties.demo1;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

/**
 * 从键盘接收数据,并输出在控制台
 * 使用PrintWriter
 *
 */
public class PrintWriterDemo {

    public static void main(String[] args) throws IOException {
        //从键盘接收数据,并输出在控制台
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

        //使用打印流输出,并自动刷新
        PrintWriter pw=new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)),true);

        String line=null;
        System.out.println("请输入内容,以over结束!");
        while((line=br.readLine())!=null){
            if("over".equals(line)){
                break;
            }
            pw.println(line);
        }
        pw.close();
        br.close();
    }

}

3.2、序列流--SequenceInputStream

SequenceInputStream 表示其他输入流的逻辑串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。

构造方法摘要
SequenceInputStream(Enumeration<? extends InputStream> e)
通过记住参数来初始化新创建的 SequenceInputStream,该参数必须是生成运行时类型为
InputStream 对象的 Enumeration 型参数。
SequenceInputStream(InputStream s1, InputStream s2)

通过记住这两个参数来初始化新创建的 SequenceInputStream(将按顺序读取这两个参数,先读取
s1,然后读取 s2),以提供从此 SequenceInputStream
读取的字节。

方法摘要
int available()

返回不受阻塞地从当前底层输入流读取(或跳过)的字节数的估计值,方法是通过下一次调用当前底层输入流的方法。

void close()

关闭此输入流并释放与此流关联的所有系统资源。

int read()

从此输入流中读取下一个数据字节。

int read(byte[] b,
int off, int len)

将最多 len 个数据字节从此输入流读入 byte
数组。

四、合并流

4.1、合并流

package com.pb.io.properties.demo1;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.Enumeration;
import java.util.Vector;

public class SequenceDemo {

    public static void main(String[] args) throws IOException {

        Vector<FileInputStream> v=new Vector<FileInputStream>();
        v.add(new FileInputStream("d:\\1.txt"));
        v.add(new FileInputStream("d:\\2.txt"));
        v.add(new FileInputStream("d:\\3.txt"));
        //转换为枚举
        Enumeration<FileInputStream> en=v.elements();
        //合并流
        SequenceInputStream sis=new SequenceInputStream(en);
        //目标文件
        FileOutputStream fos=new FileOutputStream("d:\\4.txt");
        //声明缓冲区
        byte[] buf=new byte[1024];
        int len=0;
        while((len=sis.read(buf))!=-1){
            fos.write(buf,0,len);
        }
        fos.close();
        sis.close();
    }

}

五、分割流

5.1、分割流

package com.pb.io.properties.demo1;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;

/**
 * 将文件切割
 * 再合并
 *
 */
public class SplitDemo {

    public static void main(String[] args) throws IOException {

        //split();
        merge();
    }
    //合并
    public static void merge() throws IOException{
        File src=new File("D:\\split");
        File [] files=src.listFiles();
        ArrayList<FileInputStream> list=new ArrayList<FileInputStream>();
        for(File f:files){
            list.add(new FileInputStream(f));
        }
        Iterator<FileInputStream> it=list.iterator();
        //创建枚举
        Enumeration<FileInputStream> en=new Enumeration<FileInputStream>() {

            @Override
            public FileInputStream nextElement() {

                return it.next();
            }
            @Override
            public boolean hasMoreElements() {
                return it.hasNext();
            }
        };

        //创建合并流
        SequenceInputStream sis=new SequenceInputStream(en);
        FileOutputStream fos=new FileOutputStream("D:\\split\\t.mp3");
        byte[] buf=new byte[1024];
        int len=0;
        while((len=sis.read(buf))!=-1){
            fos.write(buf,0,len);
        }
        fos.close();
        sis.close();

    }

    //切割
    public static void split() throws IOException{
        //源文件
        File file=new File("D:\\gm.mp3");

        FileInputStream fis=new FileInputStream(file);
        //目标
        FileOutputStream fos=null;
        //缓冲区
        byte[] buf=new byte[1024*1024];
        int len=0;
        int count=1;
        while((len=fis.read(buf))!=-1){
            fos=new FileOutputStream("D:\\split\\"+(count++)+".part");
            fos.write(buf,0,len);
        }
        fos.close();
        fis.close();
    }

}
时间: 2024-11-07 15:12:28

JAVA基础学习day21--IO流三-File、Properties、PrintWriter与合并、分割流的相关文章

java基础学习总结——流

永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! java基础学习总结——流 一.JAVA流式输入/输出原理 流是用来读写数据的,java有一个类叫File,它封装的是文件的文件名,只是内存里面的一个对象,真正的文件是在硬盘上的一块空间,在这个文件里面存放着各种各样的数据,我们想读文件里面的数据怎么办呢?是通过一个流的方式来读,咱们要想从程序读数据,对于计算机来说,无论读什么类型的数据都是以010101101010这样的形式读取的.怎么把文件里面的数据读出来呢?你可以把文件想象成一

Java基础学习总结——Java对象的序列化和反序列化

一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中: 2) 在网络上传送对象的字节序列. 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存.比如最常见的是Web服务器中的Session对象,当有 10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些s

JAVA基础学习流程

JAVA基础学习: 第一步:学习JAVA的开发环境配置.开发第一个Java程序.也建议大家开始使用eclipse等IDE,不必纠结是不是一定要从记事本开始. 第二步:学习数据类型.运算符.变量.这是编程的基础,是程序的“砖块”.这些内容大多数编程语言都有,而且非常类似. 第三步:学习控制语句.这是编程的基础,是程序的“混凝土”.有了控制语句+变量,理论上你就可以写任意的程序了.因此,这是进入程序的门槛,需要大量的练习. 第四步:学习面向对象基础.通过类.对象.包等基本概念讲解.学习的时候,一定要

复习java基础第六天(IO)

一:File 类 • 输入:读取外部数据(磁盘.光盘等存储设备的数据)到程序(内存)中. • 输出:将程序(内存)数据输出到磁盘.光盘等存储设备中 • Java 的 IO 流主要包括输入.输出两种 IO 流,每种输入.输出流有可分为字节流和字符流两大类: – 字节流以字节为单位来处理输入.输出操作 – 字符流以字符为单位来处理输入.输出操作 注意:输入.输出是以程序为参照. • File 类代表与平台无关的文件和目录. • File  能新建.删除.重命名文件和目录,但 File 不能访问文件内

java基础学习总结——网络编程

永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! java基础学习总结——网络编程 一.网络基础概念 首先理清一个概念:网络编程 != 网站编程,网络编程现在一般称为TCP/IP编程. 二.网络通信协议及接口 三.通信协议分层思想 四.参考模型 五.IP协议 每个人的电脑都有一个独一无二的IP地址,这样互相通信时就不会传错信息了. IP地址是用一个点来分成四段的,在计算机内部IP地址是用四个字节来表示的,一个字节代表一段,每一个字节代表的数最大只能到达255. 六.TCP协议和UD

Java基础学习总结--多态

一.面向对象的三大特性:封装.继承.多态 ? 从一定角度来看,封装和继承几乎都是为多态而准备的. 二.什么是多态? ? 指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行为方式.(发送消息就是函数调用) 三.实现多态的技术以及三个必要条件: ? 实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法. 三个必要条件: 继承 重写 父类引用指向子类对象 四.多态的作用.好处.类型

转载:java基础学习总结——java读取properties文件总结

java基础学习总结--java读取properties文件总结 一.java读取properties文件总结 在java项目中,操作properties文件是经常要做的,因为很多的配置信息都会写在properties文件中,这里主要是总结使用getResourceAsStream方法和InputStream流去读取properties文件,使用getResourceAsStream方法去读取properties文件时需要特别注意properties文件路径的写法,测试项目如下: 1.1.项目的

java基础知识回顾之javaIO类--File类应用:获取指定目录下面的指定扩展名的文件,将文件的绝对路径写入到目的文件当中

/** * File文件综合应用 * 需求:获取指定目录下面,指定扩展名的文件,将文件的绝对路径写到文本文件当中. *  * 思路:1.需要深度遍历.--递归 * 2.遍历的过程中过滤指定扩展名的文件--过滤器FileNameFilter,将文件存入容器中 * 3.将容器中的内容遍历,写入到指定文件中 * */ 代码:  FilenameFilter 过滤器: package com.lp.ecjtu.File.filter; import java.io.File; import java.i

java 基础学习

a+b: 1 import java.util.Scanner; 2 public class Main { 3 4 public static void main(String args[]){ 5 Scanner cin=new Scanner(System.in); 6 int a,b; 7 a=cin.nextInt(); 8 b=cin.nextInt(); 9 System.out.println(a+b); 10 11 } 12 } 字符串.字符输入: 1 import java.

Java基础学习笔记

File 的高级获取功能 String[] list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录 示例 import java.io.File; class FileDemo9 { public static void  main(String[] args) { //获取E:下所有目录或者文件名称 File file=new  File("E:\\");//1.构建文件对象 String[]  fileNames=file.list();//2.获取E