`

一阶段-SixteenthWork-读写文件

阅读更多
/*
在F盘下建立一个名为“学生成绩单”的目录,在里面新建一个名为“JAVA成绩.txt”的txt文件在里面填写以下信息:
  张三      90
  李四      95
  王五      88
  赵六      75
String str ="张三\t90\r\n李四\t95\r\n王五\t88\r\n赵六\t75\r\n";
1.编写程序查看此文件或目录是否存在,若存在,判断是目录还是文件,
得到它的名字和绝对路径,以及它的大小。
2.若此文件存在,编写程序查看此文件的内容(使用FileInputStream)。
3.若此文件存在,向此文件添加一名学生的成绩(孙七  100)(使用FileOutputStream)。
4. 复制该文件 内容
java.txt    new.txt
*/
package SixteenthWork;

public class FileUsed
{
    public static void main(String[] args)
    {
        /*
         * 下面是题目的各个实现,测试时应该屏蔽掉其它题号部分再运行程序
        */
        //1、新建一个文件
        FileNew newFile = new FileNew();//用于生成一个新的文件
        newFile.inintFile();
        //2、编写程序查看此文件或目录是否存在
        FileJudge judge = new FileJudge();//用于判断文件的属性
        judge.judge();
        //3、编写程序查看此文件的内容
        FileLookOut fileOut = new FileLookOut();//用于查询文件内容
        fileOut.lookOut();
        //4、向此文件添加一名学生的成绩(孙七  100)
        UpdateFile uf = new UpdateFile();//用于更新文件信息
        uf.updateData();
        //5、复制该文件 内容
        CopyFile cf = new CopyFile();//用于复制文件信息到一个新的文件
        cf.copy();
    }
}
=====================================

package SixteenthWork;
import java.io.*;

public class FileNew
{
    public String inintFile()
    {
        String fileName = "";
        System.out.println("请输入您要新建的文件名和路径:");
        InputStreamReader in = new InputStreamReader(System.in);
        BufferedReader buff = new BufferedReader(in);
        try
        {
            fileName = buff.readLine();//获取键盘输入的文件路径名
        }catch(Exception e){
            System.out.println(e.toString());
        }
        File file = new  File(fileName);//路径名与文件类绑定
        String str ="张三\t90\r\n李四\t95\r\n王五\t88\r\n赵六\t75\r\n";
        FileWriter fw;
        try
        {
            if(!file.canExecute())
            {
                 file.createNewFile();//新建文件
                 fw = new FileWriter(file);//实例一个FileWriter对象
                 fw.append(str,0,str.length());//向文件中写入字符串
                 fw.flush();//刷新该文件
                 if(file.canExecute())//如果文件生成成功
                 {
                   System.out.println("文件生成成功!");
                 }
            }
            else//如果文件生成失败
            {
                System.out.println("该文件已经存在,无需重新创建!");
            }
        }catch(Exception e)
        {
            System.out.println(e.toString());
        }
        return fileName;//返回文件的路径名
    }

}

========================================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package SixteenthWork;
import java.io.*;
public class FileJudge  //查看此文件或目录是否存在,若存在,判断是目录还是文件
{
    FileNew fileNew = new FileNew();
    public void judge()
    {
        File file = new File(fileNew.inintFile());//获取文件路径
        if(file.canExecute())//判断获取文件是否成功
        {
            if(file.isDirectory())//判断这是一个目录
            {
                 System.out.println("属性: 目录");
                 System.out.println("目录: "+file.getName());
                 System.out.println("目录绝对路径: "+file.getAbsolutePath());
                 System.out.println("目录大小: "+file.length()+" 字节");
            }
            if(file.isFile())//判断这是一个文件
            {
                 System.out.println("属性: 文件");
                 System.out.println("文件名: "+file.getName());
                 System.out.println("文件绝对路径: "+file.getAbsolutePath());
                 System.out.println("文件大小: "+file.length()+" 字节");
            }
        }
        else{
             System.out.println("无法获得对应的文件");
        }
    }
}
=============================================

package SixteenthWork;
import java.io.*;
public class FileLookOut
{
    public void lookOut()
    {
        FileNew fileNew = new FileNew();//获取新建的文件实例
//        Reader re = null;           //以字符读取
        try{
            //把获得的文件名字传进FileInputStream中,从文件读入字节,以byte形式保存
             FileInputStream fileIn = new FileInputStream(fileNew.inintFile() );
             InputStreamReader in = new InputStreamReader(fileIn); //从文件到系统
//             re = in;//把字节转成字符
             int num = 0;
             while((num = in.read()) != -1)
             {
                 System.out.print((char)num);
             }
             in.close();
//             int num = 0;
//             while((num = re.read()) != -1)//以每次读取单个字符的方式读取,并保存到整数num中
//             {
//                 System.out.print((char)num);//把保存了的单个整数打印出来
//             }
        }catch(Exception e)
        {
            System.out.println(e.toString());
        }
//        try
//        {
//            re.close();//关闭该流并释放与之关联的所有资源。
//        }catch(Exception e)
//        {
//            System.out.println(e.toString());
//        }
    }
}
======================================

package SixteenthWork;
import java.io.*;

public class UpdateFile
{
    public void updateData()
    {
        FileNew fileNew = new FileNew();//获取已经生成的文件
        Writer wr = null; 
        try
        {
            FileOutputStream fileOut = new FileOutputStream(fileNew.inintFile(),true);//字节输入流,true设置为在文件内容之后写进新内容
            OutputStreamWriter ow = new OutputStreamWriter(fileOut);//字符输入流
            wr = ow;//子类Writer,这里可以不用,而直接用ow,是一样的效果
            String str = "孙七\t100\r\n";          
            wr.write(str);  //向文件写进新的字符串
            wr.flush();
        }catch(Exception e)
        {
            System.out.println(e.toString());
        }
        try{
            wr.close();
        }catch(Exception e1)
        {
            System.out.println(e1.toString());
        }
    }
}
=====================================

package SixteenthWork;
import java.io.*;


public class CopyFile
{
    public void copy()
    {       
        try {
            FileNew file = new FileNew();
            String fs = new String(file.inintFile());
            //把文件信息读取出来
            FileInputStream fis = new FileInputStream(fs);
            InputStreamReader isr = new InputStreamReader(fis);
            BufferedReader buff1 = new BufferedReader(isr);
            char[] c = new char[100];
            int num = 0;
//            while(isr.read() != -1)
//            {
////                 for(int i=0;i<c.length;i++)
////                {
////                    num = isr.read();
////                        System.out.print((char)num);
////                    c[i] =(char) num;
////                }
//            }
            isr.read(c, 0, c.length);
            String str = new String(c);
           System.out.println(str);

            //把文件信息写进新文件
            System.out.println("请输入你想复制"+fs+"到达的目标路径:");
            InputStreamReader in = new InputStreamReader(System.in);
            BufferedReader buff2 = new BufferedReader(in);
            String newStr = buff2.readLine();
            File fi = new File(newStr);
            fi.createNewFile();
            FileOutputStream fos = new FileOutputStream(fi);
            OutputStreamWriter osr = new OutputStreamWriter(fos);
            osr.write(c,0,c.length);
            osr.flush();
//            fis.close();
//            osr.close();
        }catch(IOException e)
        {
            System.out.println(e.toString());
        }
    }

}


分享到:
评论

相关推荐

    基于java的开发源码-FAT文件系统读写类库 fat32-lib.zip

    基于java的开发源码-FAT文件系统读写类库 fat32-lib.zip 基于java的开发源码-FAT文件系统读写类库 fat32-lib.zip 基于java的开发源码-FAT文件系统读写类库 fat32-lib.zip 基于java的开发源码-FAT文件系统读写类库 ...

    Object-C语言文件读写操作代码

    Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写...

    无痕驱动读写-破虚拟读写

    无痕驱动读写-破虚拟读写无痕驱动读写-破虚拟读写无痕驱动读写-破虚拟读写无痕驱动读写-破虚拟读写无痕驱动读写-破虚拟读写无痕驱动读写-破虚拟读写无痕驱动读写-破虚拟读写无痕驱动读写-破虚拟读写无痕驱动读写-破...

    通过can总线实现对U盘拔插的感应以及在U盘中读写文件,并在oled上显示状态

    通过can总线实现对U盘拔插的感应以及在U盘中读写文件,并在oled上显示状态。包括整个工程文件。 U盘读写文件程序\YT32B1_STM32F103_demo.uvproj, 19771 , 2018-04-27 U盘读写文件程序\Basic\adc\adc.c, 4288 , 2018...

    YLE-300系列磁卡读写机编程资料

    YLE-300系列磁卡读写机编程资料是一份重要的技术资源,主要针对使用该设备进行二次开发的程序员。这份资料包含三个关键组件:Pcomm.dll动态链接库文件、Yle300_api.h头文件以及YLE300磁卡读写机程序手册.pdf,它们...

    dbf-jdbc-wisecoders,JAVA 读写DBF文件工具包

    `dbf-jdbc-wisecoders`是一个Java库,它提供了对DBF文件的读写功能,使得开发者能够通过Java语言方便地操作这些文件。 这个工具包的主要特点和功能包括: 1. **JDBC接口**:`dbf-jdbc-wisecoders`通过提供一个类似...

    1-2-34-U盘读写文件程序.zip

    在这个"1-2-34-U盘读写文件程序"的压缩包中,包含了一个示例程序,它演示了如何在STM32 376S芯片上使用SPI接口进行文件读写操作。 STM32 376S是一款具备SPI(Serial Peripheral Interface)通信协议的微控制器,SPI...

    YLE-300系列磁卡读写机应用程序3.6 安装

    YLE-300系列磁卡读写机是专业用于处理磁卡数据的设备,它集成了读取、写入和管理磁卡信息的功能。这款应用程序3.6版本的安装过程涉及多个关键步骤和技术要点,对于理解和操作该设备至关重要。 首先,安装前的准备...

    Python-100-Days-c语言文件读写操作代码

    Python - 100 c语言文件读写操作代码 c语言文件读写操作代码 c语言文件读写操作代码 c语言文件读写操作代码 c语言文件读写操作代码

    1-2-5-FLASH读写程序.zip

    压缩包内的文件“1-2-5-FLASH读写程序”可能包含源代码、编译脚本、工程配置文件等,这些资源将指导用户如何在洋桃开发板上运行这个Flash读写程序。开发者可以通过分析源代码,学习如何初始化Flash控制器、设置地址...

    行业分类-设备装置-一种文件读写方法及装置.zip

    标题中的“行业分类-设备装置-一种文件读写方法及装置”表明了这个压缩包内的内容主要涉及的是信息技术领域中的设备或系统,具体是关于文件读写操作的技术方案。描述中的内容与标题相呼应,进一步确认了这个主题。...

    VC程序--实现数据库的读写

    VC程序--实现数据库的读写 mfc

    计算机软件-商业源码-实例099-记录文件的读写.zip

    在计算机编程领域,文件的读写操作是至关重要的基本技能之一。这个名为“实例099-记录文件的读写.zip”的压缩包文件显然包含了关于如何在商业软件中实现这一功能的源码示例。在这里,我们将深入探讨文件读写的基本...

    vc读取物理内存--非文件读写操作

    "vc读取物理内存--非文件读写操作"这个主题聚焦于如何通过VC++程序直接访问和操作计算机的物理内存,而不是通过常规的文件系统接口进行读写。这是一种高级的、低级别的编程技术,通常用于系统级编程、驱动开发或者...

    VC_sample.rar_XCRFA_XCRFAP_XCRMF-801 _vc读写器

    【标题】"VC_sample.rar_XCRFA_XCRFAP_XCRMF-801_vc读写器" 提供了一个基于VC++开发的XCRMF-801型读写器的源代码示例,这对于想要理解和开发类似RFID(射频识别)系统的IT专业人士来说是一个宝贵的资源。 【描述】...

    行业分类-设备装置-一种文件读写处理方法及装置.zip

    "一种文件读写处理方法及装置"的主题涉及到计算机科学中的核心概念,包括文件系统、I/O操作、内存管理以及可能的优化策略。以下是对这一主题的详细阐述: 首先,我们需要理解文件系统。文件系统是操作系统用于组织...

    构建高性能web之路------mysql读写分离实战.pdf

    构建高性能Web应用的关键之一便是数据库的高效读写分离。本篇实战文档重点讨论了MySQL数据库的读写分离实现,涉及到的技术包括主从复制、代理中间件以及相关配置。 首先,MySQL的主从复制是实现读写分离的基础。...

Global site tag (gtag.js) - Google Analytics