`
中国小虫
  • 浏览: 12511 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java

    博客分类:
  • Java
阅读更多

这个是转的···

输入输出流
在Java中,我们把能够读取一个字节序列的对象称作一个输入流;而我们把够写一个字节序列称作一个输出流。它们分别由抽象类
InputStream和OutputStream类表示。因为面向字节的流不方便用来处理存储为Unicode(每个字符使用两个字节)的信息。所以Java
引入了用来处理Unicode字符的类层次,这些类派生自抽象类Reader和Writer,它们用于读写双字节的Unicode字符,而不是单字节字符。
Java.io包简介
JDK标准帮助文档是这样解释Java.io包的,通过数据流、序列和文件系统为系统提供输入输出。
InputStream类和OutputStream类
InputStream类是所有输入数据流的父类,它是一个抽象类,定义了所有输入数据流都具有的共通特性。
java.io.InputStream的方法如下:
public abstract read()throws IOException
读取一个字节并返回该字节,如果到输入源的末则返回-1。一个具体的输入流类需要重载此方法,以提供 有用的功能。例如:在FileInputStream类中,该方法从一个文件读取一个字节。
public int read(byte[] b)throws IOException
把数据读入到一个字节数据中,并返回实际读取的字节数目。如果遇到流末 则返回-1,该方法最多读取b.length个字节。
public abstract int read(byte[] b,int off,int len)throws IOException
把数据读入到一个字节数组中并返回实际读取的字节数目。如果遇到流的末尾则的返回-1。 其中参数off表示第一个字节在b中的位置,len表示读取的最大字节数。
public long skip(long n)throws IOException
略过N个字节不读取,会返回实际略过的字节数目。因为数据流中剩下的数据可能不到N 个字节那么多,所以此时返回值会小于N。
public int available()throws IOException
read方法(包括后面要讲的OutputStream类的Write方法)都能够阴塞一个线程,直到字节被 实际读取或写入。这意味着如果一个流不能立即被读或被写
/*
* Created on 2005-3-10
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.FileInputStream;;
/**
* @author zhangqinglin
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class Files
{
public static void main(String[] args) throws IOException
{
Files f = new Files();
// System.out.println(f.readFile("f:\\LinkFile.java"));
f.fileIsNull("D:\\java\\","ejb");
//f.readLineFile("D:\\java\\","TestFile.txt");
// System.out.println(f.fileIsNull("f:\\","122.txt"));
//f.readFolderByFile("F:\\Login"); //不区分大小写
// System.out.println(f.createAndDeleteFolder("ss","f:\\"));
// System.out.println(f.createAndDeleteFile("f:\\ss\\","TestFile.dat"));
//f.createAndDeleteFolder("1","D:\\java\\");
String[] ss = new String[50]; //定义对象数组
for(int i=0;i<ss.length;i++)
{
ss = "信息技术和互联网(计算机软硬件,通讯) "+i;
}
f.writeFile("D:\\java\\","TestFile.txt",ss);

}
/**
* 文件的写入
* @param filePath(文件路径)
* @param fileName(文件名)
* @param args[]
* @throws IOException
*/
public void writeFile(String filePath,String fileName,String[] args) throws IOException
{
FileWriter fw = new FileWriter(filePath+fileName);
PrintWriter out=new PrintWriter(fw);
for(int i=0;i<args.length;i++)
{
out.write(args);
out.println();
//out.flush();
}
System.out.println("写入成功!");
fw.close();
out.close();
}
/**
* 文件的写入
* @param filePath(文件路径)
* @param fileName(文件名)
* @param args
* @throws IOException
*/
public void writeFile(String filePath,String fileName,String args) throws IOException
{
FileWriter fw = new FileWriter(filePath+fileName);
fw.write(args);
fw.close();
}
/**
* 创建与删除文件
* @param filePath
* @param fileName
* @return 创建成功返回true
* @throws IOException
*/
public boolean createAndDeleteFile(String filePath,String fileName) throws IOException
{
boolean result = false;
File file = new File(filePath,fileName);
if(file.exists()){
if(file.isFile())
{
file.delete();
result = true;
System.out.println("文件已经删除!");
}
else
{
   System.out.println("对不起,该路径为目录!");
  
}
}
else
{
file.createNewFile(); //jdk5.0的新方法
result = true;
System.out.println("文件已经创建!");
}
return result;
}
/**
* 创建和删除目录
* @param folderName
* @param filePath
* @return 删除成功返回true
*/
public boolean createAndDeleteFolder(String folderName,String filePath)
{
boolean result = false;
try
{
File file = new File(filePath+folderName);
if(file.exists())
{
if(file.isDirectory()){
file.delete();
System.out.println("目录已经存在,已删除!");
result = true;
}
else{
System.out.println("对不起,该路径为文件!");
}
}
else
{
file.mkdir();
System.out.println("目录不存在,已经建立!");
result = true;
}
}
catch(Exception ex)
{
result = false;
System.out.println("CreateAndDeleteFolder is error:"+ex);
}
return result;
}
/**
* 输出目录中的所有文件及目录名字
* @param filePath
*/
public void readFolderByFile(String filePath)
{
File file = new File(filePath);
File[] tempFile = file.listFiles();
for(int i = 0;i<tempFile.length;i++)
{
if(tempFile.isFile())
{
System.out.println("File : "+tempFile.getName());
}
if(tempFile.isDirectory())
{
System.out.println("Directory : "+tempFile.getName());
}
}
}
/**
* 检查文件中是否为一个空
* @param filePath
* @param fileName
* @return 为空返回true
* @throws IOException
*/
public boolean fileIsNull(String filePath,String fileName) throws IOException
{
boolean result = false;
FileReader fr = new FileReader(filePath+fileName);
if(fr.read() == -1)
{
result = true;
System.out.println(fileName+" 文件中没有数据!");
}
else
{
System.out.println(fileName+" 文件中有数据!");
}
fr.close();
return result;
}
/**
* 读取文件中的所有内容
* @param filePath
* @param fileName
* @throws IOException
*/
public void readAllFile(String filePath,String fileName) throws IOException
{
FileReader fr = new FileReader(filePath+fileName);
//PrintWriter pr=new PrintWriter(fr);
//pr.print
int count = fr.read();
while(count != -1)
{
System.out.print((char)count);
count = fr.read();
//System.out.println();
if(count == 13)
{
fr.skip(1);
System.out.print("跳过!");
}
}
System.out.println();
fr.close();
}
/**
* 一行一行的读取文件中的数据
* @param filePath
* @param fileName
* @throws IOException
*/
public void readLineFile(String filePath,String fileName) throws IOException
{
FileReader fr = new FileReader(filePath+fileName);
BufferedReader br = new BufferedReader(fr);
String line = br.readLine();
while(line != null)
{
System.out.println(line);
line = br.readLine();
}
br.close();
fr.close();
}
}


/***************************以下是常用的文件操作方法******************************/

/** 
     *  @see 新建目录 
     *  @param  folderPath  String  如  c:/fqf 
     *  @return  boolean 
     */ 
   public  void  newFolder(String  folderPath) 

       try  { 
           String  filePath  =  folderPath; 
           filePath  =  filePath.toString(); 
           java.io.File  myFilePath  =  new  java.io.File(filePath); 
           if  (!myFilePath.exists()) 
            { 
               myFilePath.mkdir(); 
           } 
       } 
       catch  (Exception  e)
       { 
           System.out.println("新建目录操作出错"); 
           e.printStackTrace(); 
       } 
   } 

   /** 
     *  @see 新建文件 
     *  @param  filePathAndName  String  文件路径及名称  如c:/fqf.txt 
     *  @param  fileContent  String  文件内容 
     *  @return  boolean 
     */ 
   public  void  newFile(String  filePathAndName,  String  fileContent)  { 

       try  { 
           String  filePath  =  filePathAndName; 
           filePath  =  filePath.toString(); 
           File  myFilePath  =  new  File(filePath); 
           if  (!myFilePath.exists())  { 
               myFilePath.createNewFile(); 
           } 
           FileWriter  resultFile  =  new  FileWriter(myFilePath); 
           PrintWriter  myFile  =  new  PrintWriter(resultFile); 
           String  strContent  =  fileContent; 
           myFile.println(strContent); 
           resultFile.close(); 

       } 
       catch  (Exception  e)  { 
           System.out.println("新建文件操作出错"); 
           e.printStackTrace(); 

       } 

   } 

   /** 
     *  @see 删除文件 
     *  @param  filePathAndName  String  文件路径及名称  如c:/fqf.txt 
     *  @param  fileContent  String 
     *  @return  boolean 
     */ 
   public  void  delFile(String  filePathAndName)  { 
       try  { 
           String  filePath  =  filePathAndName; 
           filePath  =  filePath.toString(); 
           java.io.File  myDelFile  =  new  java.io.File(filePath); 
           myDelFile.delete(); 
           System.out.println(myDelFile + "\\文件存在,已删除。");

       } 
       catch  (Exception  e)  { 
           System.out.println("删除文件操作出错"); 
           e.printStackTrace(); 

       } 

   } 

   /** 
     *  @see 删除文件夹 
     *  @param  filePathAndName  String  文件夹路径及名称  如c:/fqf 
     *  @param  fileContent  String 
     *  @return  boolean 
     */ 
   public  void  delFolder(String  folderPath)  { 
       try  { 
           delAllFile(folderPath);  //删除完里面所有内容 
           String  filePath  =  folderPath; 
           filePath  =  filePath.toString(); 
           java.io.File  myFilePath  =  new  java.io.File(filePath); 
           myFilePath.delete();  //删除空文件夹 

       } 
       catch  (Exception  e)  { 
           System.out.println("删除文件夹操作出错"); 
           e.printStackTrace(); 

       } 

   } 

   /** 
     *  @see 删除文件夹里面的所有文件 
     *  @param  path  String  文件夹路径  如  c:/fqf 
     */ 
   public  void  delAllFile(String  path)  { 
       File  file  =  new  File(path); 
       if  (!file.exists())  { 
           return; 
       } 
       if  (!file.isDirectory())  { 
           return; 
       } 
       String[]  tempList  =  file.list(); 
       File  temp  =  null; 
       for  (int  i  =  0;  i  <  tempList.length;  i++)  { 
           if  (path.endsWith(File.separator))  { 
               temp  =  new  File(path  +  tempList[i]); 
           } 
           else  { 
               temp  =  new  File(path  +  File.separator  +  tempList[i]); 
           } 
           if  (temp.isFile())  { 
               temp.delete(); 
           } 
           if  (temp.isDirectory())  { 
               delAllFile(path+"/"+  tempList[i]);//先删除文件夹里面的文件 
               delFolder(path+"/"+  tempList[i]);//再删除空文件夹 
           } 
       } 
   } 

   /** 
     *  @see 复制单个文件 
     *  @param  oldPath  String  原文件路径  如:c:/fqf.txt 
     *  @param  newPath  String  复制后路径  如:f:/fqf.txt 
     *  @return  boolean 
     */ 
   public  void  copyFile(String  oldPath,  String  newPath)  { 
       try  { 
           int  bytesum  =  0; 
           int  byteread  =  0; 
           File  oldfile  =  new  File(oldPath); 
           if  (oldfile.exists())  {  //文件存在时 
               InputStream  inStream  =  new  FileInputStream(oldPath);  //读入原文件 
               FileOutputStream  fs  =  new  FileOutputStream(newPath); 
               byte[]  buffer  =  new  byte[1444]; 
               //int  length = 0; 
               while  (  (byteread  =  inStream.read(buffer))  !=  -1)  { 
                   bytesum  +=  byteread;  //字节数  文件大小 
                   System.out.println(bytesum); 
                   fs.write(buffer,  0,  byteread); 
               } 
               inStream.close(); 
           } 
       } 
       catch  (Exception  e)  { 
           System.out.println("复制单个文件操作出错"); 
           e.printStackTrace(); 

       } 

   } 

   /** 
     *  @see 复制整个文件夹内容 
     *  @param  oldPath  String  原文件路径  如:c:/fqf 
     *  @param  newPath  String  复制后路径  如:f:/fqf/ff 
     *  @return  boolean 
     */ 
   public  void  copyFolder(String  oldPath,  String  newPath)  { 

       try  { 
           (new  File(newPath)).mkdirs();  //如果文件夹不存在  则建立新文件夹 
           File  a=new  File(oldPath); 
           String[]  file=a.list(); 
           File  temp=null; 
           for  (int  i  =  0;  i  <  file.length;  i++)  { 
               if(oldPath.endsWith(File.separator)){ 
                   temp=new  File(oldPath+file[i]); 
               } 
               else{ 
                   temp=new  File(oldPath+File.separator+file[i]); 
               } 

               if(temp.isFile()){ 
                   FileInputStream  input  =  new  FileInputStream(temp); 
                   FileOutputStream  output  =  new  FileOutputStream(newPath  +  "/"  + 
                           (temp.getName()).toString()); 
                   byte[]  b  =  new  byte[1024  *  5]; 
                   int  len; 
                   while  (  (len  =  input.read(b))  !=  -1)  { 
                       output.write(b,  0,  len); 
                   } 
                   output.flush(); 
                   output.close(); 
                   input.close(); 
               } 
               if(temp.isDirectory()){//如果是子文件夹 
                   copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]); 
               } 
           } 
       } 
       catch  (Exception  e)  { 
           System.out.println("复制整个文件夹内容操作出错"); 
           e.printStackTrace(); 

       } 

   } 

   /** 
     *  @see 移动文件到指定目录 
     *  @param  oldPath  String  如:c:/fqf.txt 
     *  @param  newPath  String  如:d:/fqf.txt 
     */ 
   public  void  moveFile(String  oldPath,  String  newPath)  { 
       copyFile(oldPath,  newPath); 
       delFile(oldPath); 

   } 

   /** 
     *  移动文件到指定目录 
     *  @param  oldPath  String  如:c:/fqf.txt 
     *  @param  newPath  String  如:d:/fqf.txt 
     */ 
   public  void  moveFolder(String  oldPath,  String  newPath)  { 
       copyFolder(oldPath,  newPath); 
       delFolder(oldPath); 

   } 
  
   /** 
    * @see 获得系统根目录绝对路径 
    * @return String 
    *   
    */
   public String getPath(){

  String sysPath = this.getClass().getResource("/").getPath();
     //对路径进行修改
  sysPath = sysPath.substring(1, sysPath.length() - 16);
  return  sysPath;
   
   }
分享到:
评论

相关推荐

    Java 面经手册·小傅哥.pdf

    这是一本以面试题为入口讲解 Java 核心内容的技术书籍,书中内容极力的向你证实代码是对数学逻辑的具体实现。当你仔细阅读书籍时,会发现Java中有大量的数学知识,包括:扰动函数、负载因子、拉链寻址、开放寻址、...

    Java OCR 图像智能字符识别技术,可识别中文

    Java OCR(Optical Character Recognition,光学字符识别)技术是一种计算机视觉领域的应用,它能将图像中的文字转换成可编辑的文本格式。这项技术在各种场景下都有广泛应用,比如文档扫描、车牌识别、发票处理等。...

    java源码包2

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...

    java源码包3

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...

    java电商源代码 java电商源代码

    java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java...

    java api最新7.0

    JAVA开发人员最新版本7.0 api文档!本文档是 Java Platform Standard Edition 7 的 API !Java 1.7 API的中文帮助文档。 深圳电信培训中心 徐海蛟博士教学用api 7.0中文文档。支持全文检索,在线即时查询。 里面列...

    java景点导航系统java景点导航系统

    java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点...

    java开源包4

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包9

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包8

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包10

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    Java2Pas Java代码转pas代码

    Java2Pas是一个实用工具,主要用于将Java编程语言编写的源代码转换为Pascal语言的等效代码。这个工具对于那些需要在两种语言之间迁移代码或者理解不同编程语言语法的开发者来说非常有价值。Java和Pascal虽然都是面向...

    java错误处理:java.lang.OutOfMemoryError: Java heap space

    ### Java 错误处理:java.lang.OutOfMemoryError: Java heap space 在Java应用程序开发过程中,经常遇到的一个问题就是内存溢出错误,特别是在处理大量数据或长时间运行的应用时。其中,“java.lang....

    Java文件管理系统源码.zip

    Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 ...

    smali2java——直接将smali转换成java

    标题"smali2java——直接将smali转换成java"揭示了本文的核心主题,即一个名为"smali2java"的工具,它的主要功能是将编程语言Smali转换为Java。Smali是一种低级的、汇编式的语言,通常用于Android应用的逆向工程,而...

    java2python--java代码转python工具

    Java到Python的转换工具,如标题“java2python”所示,是编程领域中的一种实用技术,旨在帮助开发者将已有的Java代码转换为Python语言。这种转换对于那些熟悉Java但希望进入Python生态系统,或者想要利用Python特定...

    java开源包3

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java11安装包正式版

    jdk11官方版是一款专为java编程人员推出的软件开发工具。JAVA JDK 11最新版可以帮助用户轻松的获取到JAVA的运行环境,让你在电脑上进行程序开发操作。JAVA JDK 11软件新增Epsilon 垃圾收集器和lambda 参数的局部变量...

    Java1.6.0_26

    JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK是学好Java的...

Global site tag (gtag.js) - Google Analytics