`

JAVA IO 操作 以前学习时的代码 现在翻出来

阅读更多
/**

 * File 类不仅单纯的指文件对象也可以指是目录对象

 * 可以使用File 类操作文件和目录

 * 以下实例可以说明

 */

 

package simon;

 

import java.io.*;

import java.util.*;

/**

 *@author  Simon lv  

 *文件类对象-- 文件和目录操作的综合实例

 *创建文件夹创建文件

 **/

 public class FileDemo{

         

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

                   

                   //提示输入目录

                   System.out.println("请输入目录地址:");

                   BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

                   

                   //从控制台输入的字符串地址

                   String address = reader.readLine();

                   

                   //创建一个目录

                   File objDir = new File(address);

                   

                   //如果对象存在

                   if(objDir.exists()){

                            System.out.println("已存在此目录!");

                       }else{

                                 objDir.mkdirs(); //创建文件夹对象mkdirs() 方法和mkdir()有区别请自己尝试了解

                                 System.out.println("已经在指定目录创建此文件夹!");

                            }

                            

                   

                   //在objDir 目录对象中创建一个test.txt 的文件

                   File objFile = new File(objDir,"test.txt");

                   

                   //创建文件是否成功

                   boolean flag = objFile.createNewFile();

                   

                   //如果成功

                   if(flag){

                            System.out.println(objFile.getAbsolutePath()+" 已经创建好指定文件!");

                       }else{

                                 System.out.println("创建失败!(可能文件已经存在!)");

                            }

                   

                   //打印文件信息

                   System.out.println("\n绝对路径:"+objFile.getAbsolutePath());

                   System.out.println("文件名称:"+objFile.getName());

                   System.out.println("字节大小:"+objFile.length());

                   System.out.println("文件对象路径:"+objFile.getAbsoluteFile());

                   

                   //得到最后修改时间自年月日起的毫秒数

                   long time = objFile.lastModified();

                   

                   //用毫秒数构建时间对象

                   Date dt = new Date(time);

                   System.out.println("最后修改时间:"+dt.toLocaleString());

                   System.out.println("父文件夹:"+objFile.getParent());

              }

     }

 


package demo;

 

import java.io.*;

import java.util.*;

 

public class FileRead{

     

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

                   File dir = new File("C:\\Simon\\TEST");

                   dir.mkdirs(); //在C盘位置创建一个Simon 的文件夹下有Test 文件夹

                   

                   File file = new File(dir,"MYTEST.txt");

                   file.createNewFile(); //如果在Simon 文件夹下不存在MyTest.txt 文件的话就重新创建一个

                   

                   FileRead.showFileInfo(file);

              }

              

         //显示文件夹/文件的信息

         public static void showFileInfo(File objFile) throws IOException{

                   System.out.println("文件或者目录是否存在? "+objFile.exists()); //exists() 方法

                   System.out.println("是文件吗? "+objFile.isFile()); //isFile()方法

                   System.out.println("是目录吗? "+objFile.isDirectory()); //isDirectory() 方法

                   System.out.println("名称: "+objFile.getName());

                   System.out.println("路径: "+objFile.getPath());

                   System.out.println("上一层目录:"+objFile.getParent());//得到上一层目录

                   System.out.println("绝对路径: "+objFile.getAbsolutePath());//得到绝对路径

                   System.out.println("最后修改时间: "+new Date(objFile.lastModified()).toGMTString());//最后的修改时间

                   System.out.println("文件大小: "+objFile.length()); //文件大小

                   System.out.println("绝对路径上的文件对象: "+objFile.getAbsoluteFile());

                   

                   File file = objFile.getParentFile().getParentFile(); //得到上一层目录对象的上一层

                   File objF = new File(file,"objF.txt"); 

                   objF.createNewFile();  //在上一层目录对象中创建一个文件

              }

     }



package demo;

 

import java.io.*;

 

public class FileInputStreamDemo{

         

         public static void main(String args[]){

                   try{

                            File file = new File("C:\\Test.txt"); //创建一个文件对象

                            FileInputStream objFile = new FileInputStream(file); //创建一个文件输入流对象源文件对象file

                            

                            int size=objFile.available(); //能读取到的字节数

                            

                            System.out.println("可读取的字节:"+size);

                            

                            System.out.println("文件内容如下: \n");

                            

                            byte [] bt = new byte[size+1];

                            

                            StringBuffer buf = new StringBuffer();

                            

                            while(objFile.read(bt)!=-1){

                                     buf.append(new String(bt));

                                 }

                            System.out.println(buf.toString());

                            objFile.close(); //关闭输入流

                                 

                       }catch(IOException ex){

                                 System.out.println("IO 流操作错误!\n");

                            }

              }

     }



package demo;

 

import java.io.*;

 

//字节流输出操作

public class FileOutputStreamDemo{

         

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

                   

                   File file = new File("C:\\FileOutputStreamDemo.txt");//构建文件对象

                   

                   //判断文件是否已经存在

                   if(file.exists()){

                            System.out.println("此文件已经存在!\n");

                       

                       }else{

                                 file.createNewFile();  //如果不存在就重新创建文件

                                 System.out.println("创建成功!\n");

                            }

                   System.out.println("文件大小:"+file.length());

                   

                   System.out.println("请输入文本内容:\n");

                   BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

                   String mess = reader.readLine();  //输入的文本内容

                   

                   byte bt[] = mess.getBytes(); //得到输入的字符串字节数组

                   

                   //输出流对象

                   FileOutputStream out = new FileOutputStream(file);

                   

                   //写操作

                   out.write(bt,0,bt.length);

                   

                   System.out.println(file.getName()+" 文件已经更新!");

                   System.out.println("文件大小:"+file.length());

                   

                   System.out.println("再次从"+file.getName()+" 读取文件内容!\n");

                   

                   FileInputStream in = new FileInputStream(file);

                   int size  = in.available(); //可读取的长度

                   

                   byte bs[] = new byte[size+1];

              

                   StringBuffer buf = new StringBuffer();

                   

                   //不断的循环读取数据源的内容

                   while((in.read(bs))!=-1){

                            buf.append(new String(bs));

                       }

                       

                   System.out.println("内容为: "+buf.toString());

              }

     }



package demo;

 

import java.io.*;

 

//单独的FileReaderDemo 也可以进行数据流的操作

public class FileReaderDemo{

         

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

                  //绑定当前路径下的一个文件

                   File file = new File("FindString.txt");

                   

                   //创建FileReader 对象

                   FileReader reader = new FileReader(file);

                   

                   //字符数组

                   char ch[] = new char[200];

                   

                   //不为-1 代表没有读取完

                   while(reader.read(ch)!=-1){

                            String str = new String(ch);

                            System.out.println(str);

                       }

                   

              }

     }



package demo;

 

import java.io.*;

 

//BufferedReader 使用实例

public class BufferedReaderDemo{

         

         public static void main(String args[]){

                   File file = new File("C:\\Test.txt"); //构建指定位置的一个文件对象

                   

                   try{

                            if(!file.exists()){

                                     file.createNewFile();  //如果这个文件不存在就创建一个新的

                                 }

                                 

                            BufferedReader reader = new BufferedReader(new FileReader(file)); //构建reader 对象,读的对象是file

                            String str =null;

                            

                            //每次读取一行不为空为止

                            while((str=reader.readLine())!=null){

                                     System.out.println(str);  //打印

                                 }

                            reader.close();

                       }catch(IOException ex){

                                 System.out.println("读写文件时出现的错误!");

                            }

              }

}



package demo;

 

import java.io.*;

 

public class BufferedWriterDemo{

         

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

                   File file = new File("Test.txt");

                   

                   if(!file.exists()){  //如果文件不存在就创建一个新的

                            file.createNewFile();

                       }

                       

                   BufferedWriter bw = new BufferedWriter(new FileWriter(file));  //文件写对象

                   

                   System.out.println("请输入信息EXIT-退出!");

                   

                   BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  //从控制台的输入

                   

                   String str=null;

                       

                   while((str=br.readLine())!=null){  //如果字符串不为空

                            if(str.equals("EXIT")){  //如果用户输入的是EXIT 就退出

                                     break;

                                 }else{

                                          //写数据流

                                          bw.write(str);

                                          bw.newLine();

                                     }

                            br = new BufferedReader(new InputStreamReader(System.in));

                       }

                   bw.flush();

                   br.close();

                   bw.close();

              }

}    



import java.io.*;

 

/**

* 文件内容的读取和追加处理

*/

public class WriteDemo{

         

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

                   

                   File file = new File("C:\\FileDemo.txt"); //获取一个文件对象

                   

                   StringBuffer buf = new StringBuffer(); 

                   FileInputStream in;

                   

                   if(file.exists()){   //如果这个文件事先存在

                            System.out.println("文件已经存在!");

                            

                            in = new FileInputStream(file);  //创建输入流对象

                            int size = in.available(); //可读取的字节大小

                            byte bt [] = new byte[size];

                            

                            while(in.read(bt)!=-1){

                                     buf.append(new String(bt));  //先将文件中的内容全部取出

                                 }

                       }else{ //如果这个文件事先不存在,就先创建一个文件对象

                                 file.createNewFile();

                                 System.out.println("\n新创建了一个文件! 文件名:"+file.getName());

                            }

                            

                   System.out.println("请输入内容: ");

                   BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));       //重新输入的新内容

                   String str = reader.readLine();

                   

                   //询问用户是否需要把从控制台上输入的文本替换以前文本中的内容

                   System.out.println("\n是否需要将已有文件内容替换? (Y/N)");

                   BufferedReader re = new BufferedReader(new InputStreamReader(System.in));

                   char ans = re.readLine().charAt(0); //得到用户回答

                       

                   FileOutputStream out = new FileOutputStream(file); //构建输出流对象

                   

                   if(ans=='Y'||ans=='y'){

                            out.write(str.getBytes());  //如果需要替换,就直接向文件中写文件

                       }else{

                                 buf.append(str);                     //否则就追加以前的内容

                                 out.write(buf.toString().getBytes()); //写文件

                            }

                   

                   buf = new  StringBuffer();

                   System.out.println("新的内容为: \n");

                   in = new FileInputStream(file);  //创建输入流对象

                   int size = in.available(); //可读取的字节大小

                   

                   byte bt [] = new byte[size];

                   

                   //再重新取出所有内容

                   while(in.read(bt)!=-1){

                            buf.append(new String(bt));  //先将文件中的内容全部取出

                       }

                   System.out.println(buf.toString());

              }

     }



import java.io.*;

 

/**

 * 通过文件名和关键字查找关键字在文件中出现的次数

 */

public class FindStringDemo{

     

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

              

              //得到文件名

              System.out.println("请输入文件名:");

              BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

              String path = reader.readLine().trim();

              

              //输入要查找的关键字

              System.out.println("请输入关键字: ");

              reader = new BufferedReader(new InputStreamReader(System.in));

              String keyword = reader.readLine().trim();

              

              //调用自定义的方法,返回这个关键字在文件中出现的次数

              int ans=FindStringDemo.findStringBytes(path,keyword);

              

              //跟据返回值做判断,这个返回值是我们自定义的

              if(ans==-1){

                       System.out.println("这个文件的操作读取错误!");

                   }else if(ans==-2){

                            System.out.println("文件名输入不正确,请完整输入!");

                       }else{

                                 System.out.println(keyword +" 在"+path+" 所在的文件里共出现了"+ans+" 次!"); //如果有,则输出关键字出现的次数

                            }

         }

     

     //根据输入的文件名和关键字找这个关键字出现的次数

     public static int findString(String fileName,String keyWords){

         

         int count=0;

         

         File file = new File(fileName);  //根据输入的文件名构建对象

         

         //判断是否存在

         if(!file.exists()){

                   System.out.println("请检查文件的路径是否正确!\n");

                   return -2;

              }

         

         try{

              //使用BufferedReader 对象操作

                   BufferedReader reader = new BufferedReader(new FileReader(file));

                   

                   //每次读取一行

                   String str = reader.readLine();

                   

                   while(str!=null){

                       //找出字符串出现的位置

                       while(str.indexOf(keyWords)!=-1){

                                 //System.out.println(str);

                                 count++;

                                 //把这个字符串出现前的字符去掉,在后一个部分再次搜索这个字符串,能解决一行中多次出现同一字符串的情况

                                 str = str.substring(str.indexOf(keyWords)+1,str.length()-1);

                            }

                       str =reader.readLine();

                   }

                       

              }catch(IOException ex){

                       System.out.println("读写文件时发生的异常!\n");

                       return -1;

                   }

              return count;

     }

         //根据输入的文件名和关键字找这个关键字出现的次数

     public static int findStringBytes(String fileName,String keyWords){

         int count=0;

         

         File file = new File(fileName);

         

         if(!file.exists()){

                   System.out.println("请检查文件的路径是否正确!\n");

                   return -2;

              }

         

         try{

                   FileInputStream in = new FileInputStream(file);

                   

                   byte bts[] = new byte[in.available()];

                   StringBuffer buf = new StringBuffer();

                   

                   while(in.read(bts)!=-1){

                            String str = new String(bts);

                            buf.append(str);

                       }

                   String bufStr=buf.toString();

                   while(bufStr.indexOf(keyWords)!=-1){

                   //   System.out.println(bufStr.toString());

                            count++;

                            bufStr = bufStr.substring(bufStr.indexOf(keyWords)+1);

                       }

                       

              }catch(IOException ex){

                       System.out.println("读写文件时发生的异常!\n");

                       return -1;

                   }

              return count;

         }

}



package Demo;

 

import java.io.*;

 

/**

 * 二进制文件的读写操作- 复制图片

 */

public class ImgData{

         

         public static void main(String arg[])throws Exception{

                  

                   //创建文件对象

                   File file = new File("123.gif");

                   

                   //输入对象

                   FileInputStream fis = new FileInputStream(file);

                   DataInputStream dis = new DataInputStream(fis);

                   

                   //输出对象

                   FileOutputStream fos = new FileOutputStream("temp.jpg");

                   DataOutputStream dos = new DataOutputStream(fos);

                   

                   //原始图片可读大小

                   System.out.println("原图片的可读大小为:"+fis.available()+" 个字节!");

                   

                   System.out.println("图片复制中...请等待!");

                   

                   int temp=0;

                   //读的时候同时写入另一个文件temp.jpg

                   while((temp=dis.read())!=-1){

                            dos.write(temp);

                            

                       }

                   //显示的效果等待中

                   for(int i=0;i<11;i++){

                            Thread.sleep(20);

                            System.out.println("%"+i+"0 已经复制!");

                       }

                       

                   System.out.println("已完成!");

              }

     }

分享到:
评论

相关推荐

    javaIo操作的基础代码

    在提供的压缩包文件"Io基础文档"中,可能包含了关于这些概念的详细说明、示例代码和实战指导,对于深入理解和掌握Java IO操作非常有帮助。学习和理解这些内容,将有助于开发者在处理数据输入输出时编写出高效、稳定...

    java的io操作源代码

    本代码库包含了Java进行基本IO操作的源代码,涵盖了文件的复制、删除、新建和移动等功能,非常适合初学者理解和实践。 首先,我们来探讨一下Java IO操作的基本概念。在Java中,IO操作基于流(Stream)的概念,流是...

    Java io的基本操作很全面的代码呀

    在这个“Java io的基本操作很全面的代码”项目中,我们可以看到一系列针对Java IO的实例,对于学习和理解Java IO有着极大的帮助。 首先,我们来看看Java IO的基础知识。Java IO主要包括以下几大核心类: 1. **...

    java io 系列操作代码练习 Java学习资料

    "jsd2207-se-master"可能是一个Java学习项目或课程的代码库,里面可能包含了各种Java IO操作的实例代码,用于实践和学习。通过分析和运行这些代码,你可以加深对Java IO的理解,并提升实际操作能力。 总结,Java IO...

    java io流源代码

    Java IO流是Java平台中用于处理输入输出操作的核心部分,它允许程序与各种数据源(如文件、设备、网络)进行交互。...通过学习和分析这些源代码,你可以更好地掌握Java的输入输出机制,并能更有效地处理各种IO操作。

    javaIO流原代码

    javaIO流原代码,刚刚开始学习java的同志们可以看看.有问题留言.

    常用java IO操作以及用jxl读写excel 工具源代码

    Java IO操作是Java编程中非常基础且重要的部分,它提供了对输入输出流的处理,使得程序能够与外部设备(如硬盘、网络、键盘、显示器等)进行数据交换。本工具结合了Java IO操作和JXL库,实现了读取Excel文件并进行...

    java的io操作

    Java的IO操作是Java编程中不可或缺的一部分,它允许程序与外部存储设备进行交互,如读取文件、写入文件、创建文件夹等。在Java中,`java.io`包提供了大量的类和接口来支持这些功能。 首先,我们来看如何创建一个新...

    java IO流操作详解源代码下载

    在学习这些源代码时,你可能会遇到IOException,这是Java IO操作中常见的异常类型,需要正确处理。此外,流的关闭也很重要,通常在finally块中调用close()方法,确保资源得到释放。 通过这四篇博客和相应的源代码,...

    java IO教程,java IO教程,java IO教程

    java IO教程,java IO教程,java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程,java IO教程,java IO教程,java IO...

    提高Java IO操作的性能

    提高Java IO操作的性能 虽然抱怨Java程序性能不佳的呼声由来已久,但实际上,如果开发者在整个开发周期内都能够关注性能问题,Java程序完全可以和C/C++程序一样快。本文分析了Java IO应用中一些常见的性能问题。

    javaIO代码

    Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了丰富的类库,允许程序员在不同类型的I/O设备之间进行数据传输,如键盘、显示器、磁盘、网络等。Java IO API包括了流、字符...

    java IO流学习笔记

    ### Java IO流学习笔记 #### 异常处理与IO流操作 在进行Java IO流的学习过程中,异常处理是非常重要的一个方面。本节将详细介绍如何在Java中处理异常,并结合具体的IO流操作进行说明。 #### 一、异常处理 在Java...

    Java IO应届生培训讲义

    - 阻塞IO:应用程序在进行IO操作时会被阻塞,直到操作完成。 - 非阻塞IO:在等待数据阶段不会阻塞,但需要定时轮询结果。 - IO多路复用:利用select/poll/epoll函数,使单个线程可以监视多个文件描述符,提高效率。 ...

    java io流学习笔记1

    Java IO流是Java编程语言中处理输入输出操作的重要部分,尤其在数据传输、文件读写等方面发挥着核心作用。本文将深入探讨Java IO流的基本概念、类型以及它们在实际开发中的应用。 首先,理解IO流的基本概念至关重要...

    io学习源代码Java代码

    有关io流的输入输出联系代码io流的输入输出文件的读写

    java_IO学习代码

    在这个"java_IO学习代码"的压缩包中,我们很可能会找到一系列示例代码,帮助我们深入理解Java IO体系。 首先,让我们探讨一下Java IO的基本概念。Java IO模型基于流(Stream)的概念,流是一组有序的数据序列,可以...

Global site tag (gtag.js) - Google Analytics