`

Java文件流的原理与应用

 
阅读更多
如何判断是输入流还是输出流?
以内存为参照物,如果数据是向内存流动是输入流,反之则是输出流
java流分为两种流
1,字节流:可以用于读写二进制文件及任何类型文件byte
2,字符流:可以用于读写文件文本
字节流:输入(InputStream) 输出(OutputStream)
字符流:输入(Reader)         输出(writer)
import java.io.File;
import java.io.IOException;
public class Test1 {
 
 public Test1() {
 }
public void test1() {
// // 创建一个文件对象
// File ff = new File("F:\\aa.txt");
//  System.out.println("文件路径" + ff.getAbsolutePath());
//  System.out.println("文件大小" + ff.length());

//  //创建一个文件和创建文件夹
//  File f=new File("f:\\fff\\hsp.txt");
//  if(!f.exists())
//  {
//   //可以创建
// try {
// f.createNewFile();
//} catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
//}
//  }
//  else{
//   
//   System.out.println("有文件");
//  }
//  
//  
// File fff=new File("f:\\fff");
// if(f.isDirectory())
// {
//  System.out.print("文件夹已存在");
// }
// else{//创建
//  fff.mkdir();
// }
 
 //列出文件夹所有文件
 File ffff=new File("F:\\123");
 if(ffff.isDirectory())
 {
  File list[]=ffff.listFiles();
 for(int i=0;i<list.length;i++)
 {
  System.out.println("文件名"+list[i].getName());
 }
 }
  
 }
}
 
 
 
 
 

package net.test2;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
//演示FileInputStreaam  读取文件内容
public class Demo11_2 {
//构造函数
public Demo11_2(){}
public void demo()
{
 File f=new File("F:/test.txt");
 FileInputStream fis=null;
 //因为File没有读写的能力,所以需要有个InputStream
 try {
  fis=new FileInputStream(f);
  //定义一个字节数组,相当于缓存
  byte []bytes=new byte[1024];
  int n=0;      //得到实际读取到的字节数
  //循环读取
 
   while((n=fis.read(bytes))!=-1)
   {
    //把字节转成String
    String s=new String(bytes,0,n);
    System.out.println(s);
   }
  
 } catch (Exception e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }finally{
  //关闭文件流必须放这里
  try {
   fis.close();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}
}
 
 

package net.test3;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
//FileoutputStream的使用
public class Demo11_3 {
public Demo11_3(){}
FileOutputStream fos=null;
public void demo()
{
  File f=new File("f:/ss.txt");
try {
 fos=new FileOutputStream(f);
 
 String s="hello word"; //换行就是在字符末尾加上\r\n
 String s1="你好!";
 //定义字节数组
 byte []bytes=new byte[1024];
 //如何把string转化为bytes数组
 fos.write(s.getBytes());
 fos.write(s1.getBytes());
 
} catch (Exception e) {
 // TODO: handle exception
}finally{
 try {
  fos.close();
 } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 
}
}
}
 
 
package net.test4;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo12_4 {
public Demo12_4(){}
public void demo()
{
      //先把图片加入到内存——》写入某个文件
        //因为是二进制文件,只能用字节流完成
FileInputStream fis=null;
// 输出流
FileOutputStream fos=null;
try {
 fis=new FileInputStream("e:/照片/12.jpg");
 fos=new FileOutputStream("d:/12.jpg");
 
 //用byte存储二进制文件,,byte数组相当于缓存
byte buf[]=new byte[1024];
int n=0; //记录事迹读取到的字节数
 //循环读取
while((n=fis.read(buf))!=-1)
{
 //输出到指定文件夹
 fos.write(buf);
 
}
 
 
 
} catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
}finally
{
 try {
 fis.close();
} catch (IOException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
} 
}
 
}
}
 
package net.test5;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//演示文件字符流
public class Demo2_5 {
 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  // 文件取出字符流对象(输入流)
  FileReader fr = null;
  // 写入到文件(输出流)
  FileWriter fw = null;
  try {
   //创建一个fr对象
   fr=new FileReader("d:/test.txt");
   fw=new FileWriter("d:/133/test.txt");
   int n=0; //用来记录事迹读取的字符数
   //读入到内存
   char c[]=new char[1024];
   while((n=fr.read(c))!=-1)
   {  
//    String s=new String(c,0,n);
//    System.out.println(s);
    
    fw.write(c,0,n);
   }
   
  } catch (Exception e) {
   // TODO: handle exception
  }
  finally{
   try {
    fr.close();
    fw.close();
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   
  }
 }
}
 
 
package net.test6;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//演示缓存字符流
public class Demo12_6 {
 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
BufferedReader br=null;
BufferedWriter bw=null;  
try {
 FileReader fr = new FileReader("d:/test.txt");
  br=new BufferedReader(fr);
  FileWriter fw=new FileWriter("d:/test1.txt");
  bw= new BufferedWriter(fw);
 //循环读取文件
 String s="";
 while((s=br.readLine())!=null)
 {
//  System.out.println(s);
  bw.write(s+"\r\n");
 }
 
} catch (Exception e) {
 // TODO: handle exception
}
finally{
 try {
  bw.close();
  br.close();
 } catch (Exception e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 
}
}
 
}

 

分享到:
评论

相关推荐

    Java流(文件读写操作)

    ### Java流(文件读写操作) #### 一、流的分类 Java中处理文件和数据时,使用流的概念来进行...通过这些基本的示例,开发者可以更好地理解Java流的工作原理,并能够根据具体需求选择合适的流类型进行文件读写操作。

    java文件流学习实验

    通过分析这些文件,你可以深入理解Java文件流的工作原理,并学习如何在实际项目中有效地使用它们。同时,参考提供的博文链接,可能会获得更详细的解释和示例代码。在实际操作中,不断练习和调试将有助于巩固这些概念...

    java 使用流下载文件

    本文将详细介绍如何利用Java的流(Stream)技术实现文件的下载操作,并解释代码中的各个部分及其工作原理。 #### 二、知识点详解 ##### 2.1 文件路径与对象创建 在给定的示例代码中,首先定义了文件路径和文件名...

    基于Java文件输入输出流实现文件上传下载功能

    本文将详细介绍基于Java文件输入输出流实现文件上传下载功能的相关知识点,包括文件上传和下载的实现原理、Java文件输入输出流的基础操作、Servlet的使用等。 文件上传 文件上传是指客户端将文件传输到服务器端的...

    Java中的流与文件

    ### Java中的流与文件 #### 1. Java流概述 在Java编程中,流(Stream)是一种用于处理数据的抽象概念,它可以将数据看作是一系列连续的字节或字符流。流的概念非常重要,因为它提供了从文件、网络和其他来源读取数据...

    流与文件 JAVA文件操作

    `CopyFile.java`可能与`Aandb.java`有类似的功能,但可能包含更高级的特性,比如错误处理、文件指针定位或者使用缓冲区提高效率。`BufferedInputStream`和`BufferedOutputStream`是带缓冲的流,可以减少实际I/O操作...

    java 视频流读写

    现代的Java应用可能更倾向于使用如Javafx Media API、Xuggler、VLCJ等其他库来处理视频流,这些库提供了更好的性能和更多的功能。不过,理解JMF的工作原理仍然是理解多媒体处理的基础,特别是对于那些需要对旧系统...

    java文件异步上传

    Java文件异步上传是一种在Web应用中常见的技术,它允许用户在不阻塞浏览器界面的情况下上传文件。这种技术尤其在处理大文件或者批量上传时,能够显著提升用户体验,因为它们不会冻结页面,允许用户继续与应用程序...

    Java虚拟机class文件原理

    Java虚拟机(JVM)的Class文件原理是Java程序运行的基础。Java中的所有类都必须先被装载到JVM中才能被执行,这个过程由JVM内的类装载器(ClassLoader)来完成。类装载器的工作是将类文件从硬盘读取到内存中,使得JVM...

    Java运行原理与Java虚拟机.pdf

    ### Java运行原理与Java虚拟机 #### 一、Java运行原理概述 Java作为一种跨平台的编程语言,其独特之处在于它的编译和解释过程。Java程序的执行涉及到两个主要步骤:首先是编译阶段,其次是解释执行阶段。 1. **...

    Java IO流 Zip文件的压缩和解压缩

    Java IO流和Zip文件的压缩与解压缩是Java开发中常用的操作,特别是在处理大量数据或者进行文件打包传输时。在本文中,我们将深入探讨如何使用Java标准库中的API来完成这些任务。 首先,让我们理解一下Java IO流的...

    目录多文件上传-JAVA IO流常用详解

    - 使用`java.io.InputStream`与`java.io.OutputStream`进行文件内容的读取与写入。 2. **具体实现步骤** - **初始化目录**:首先,用户需要指定一个源目录(例如:“e:\myprofile”),该目录包含需要上传的所有...

    coreJava文件输入输出流源代码

    在这个“coreJava文件输入输出流源代码”中,我们可以深入学习输入输出流的原理,以及如何在实际应用中运用这些原理。 1. 输入流(Input Stream): 输入流用于将数据从源(如磁盘文件)读取到程序中。Java提供了...

    java反编译工具(.class文件反编译成.java文件)

    Java反编译是将已编译的字节码(.class文件)转换回源代码(.java文件)的过程,这对于理解和学习已有的Java程序、逆向工程或调试都是很有用的。标题提到的"java反编译工具"是用于这个目的的软件,它能够帮助开发者...

    Java-Io流,练习

    例如,可能涉及使用`FileInputStream`和`FileOutputStream`进行简单的文件复制,或者使用`BufferedReader`和`BufferedWriter`进行高效的文本文件读写。通过运行这些示例,你可以直观地理解IO流的工作原理,并学习...

    JAVA 字符流与字节流

    掌握字符流与字节流的原理及其应用,能够帮助Java开发者更高效、更准确地处理各种数据流,从而提升程序的性能和稳定性。在实际开发中,根据具体需求合理选择数据流类型,是提升代码质量和程序功能的关键。

    java文件分割合并

    在Java编程语言中,文件操作是常见的任务之一,特别是在处理大型文件时,有时我们...通过熟练掌握`FileInputStream`和`FileOutputStream`的使用,以及理解字节流的工作原理,我们可以高效地完成文件的分割与合并任务。

    JAVA直接打开本地文件

    这个类允许应用程序与用户的桌面环境进行交互,包括打开文件、发送电子邮件等。例如,如果你想打开这个文件,可以这样做: ```java if (Desktop.isDesktopSupported()) { Desktop desktop = Desktop.getDesktop();...

    java操作共享文件

    在Java编程环境中,处理共享文件是一项常见的任务,特别是在企业级应用中,可能需要访问网络上的文件系统资源。Java提供了一些库来实现这一功能,其中之一就是jcifs库,它是一个开源的Java SMB(Server Message ...

    利用java后端实现文件在线预览

    首先,我们需要理解文件预览的基本原理:用户通过浏览器发送请求到服务器,服务器处理请求并返回文件内容,然后在浏览器中以适合的方式展示这些内容。为了实现这一过程,我们需要考虑以下几个关键步骤: 1. **文件...

Global site tag (gtag.js) - Google Analytics