如何判断是输入流还是输出流? 以内存为参照物,如果数据是向内存流动是输入流,反之则是输出流 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的流(Stream)技术实现文件的下载操作,并解释代码中的各个部分及其工作原理。 #### 二、知识点详解 ##### 2.1 文件路径与对象创建 在给定的示例代码中,首先定义了文件路径和文件名...
本文将详细介绍基于Java文件输入输出流实现文件上传下载功能的相关知识点,包括文件上传和下载的实现原理、Java文件输入输出流的基础操作、Servlet的使用等。 文件上传 文件上传是指客户端将文件传输到服务器端的...
### Java中的流与文件 #### 1. Java流概述 在Java编程中,流(Stream)是一种用于处理数据的抽象概念,它可以将数据看作是一系列连续的字节或字符流。流的概念非常重要,因为它提供了从文件、网络和其他来源读取数据...
`CopyFile.java`可能与`Aandb.java`有类似的功能,但可能包含更高级的特性,比如错误处理、文件指针定位或者使用缓冲区提高效率。`BufferedInputStream`和`BufferedOutputStream`是带缓冲的流,可以减少实际I/O操作...
现代的Java应用可能更倾向于使用如Javafx Media API、Xuggler、VLCJ等其他库来处理视频流,这些库提供了更好的性能和更多的功能。不过,理解JMF的工作原理仍然是理解多媒体处理的基础,特别是对于那些需要对旧系统...
Java文件异步上传是一种在Web应用中常见的技术,它允许用户在不阻塞浏览器界面的情况下上传文件。这种技术尤其在处理大文件或者批量上传时,能够显著提升用户体验,因为它们不会冻结页面,允许用户继续与应用程序...
Java虚拟机(JVM)的Class文件原理是Java程序运行的基础。Java中的所有类都必须先被装载到JVM中才能被执行,这个过程由JVM内的类装载器(ClassLoader)来完成。类装载器的工作是将类文件从硬盘读取到内存中,使得JVM...
### Java运行原理与Java虚拟机 #### 一、Java运行原理概述 Java作为一种跨平台的编程语言,其独特之处在于它的编译和解释过程。Java程序的执行涉及到两个主要步骤:首先是编译阶段,其次是解释执行阶段。 1. **...
Java IO流和Zip文件的压缩与解压缩是Java开发中常用的操作,特别是在处理大量数据或者进行文件打包传输时。在本文中,我们将深入探讨如何使用Java标准库中的API来完成这些任务。 首先,让我们理解一下Java IO流的...
- 使用`java.io.InputStream`与`java.io.OutputStream`进行文件内容的读取与写入。 2. **具体实现步骤** - **初始化目录**:首先,用户需要指定一个源目录(例如:“e:\myprofile”),该目录包含需要上传的所有...
在这个“coreJava文件输入输出流源代码”中,我们可以深入学习输入输出流的原理,以及如何在实际应用中运用这些原理。 1. 输入流(Input Stream): 输入流用于将数据从源(如磁盘文件)读取到程序中。Java提供了...
Java反编译是将已编译的字节码(.class文件)转换回源代码(.java文件)的过程,这对于理解和学习已有的Java程序、逆向工程或调试都是很有用的。标题提到的"java反编译工具"是用于这个目的的软件,它能够帮助开发者...
例如,可能涉及使用`FileInputStream`和`FileOutputStream`进行简单的文件复制,或者使用`BufferedReader`和`BufferedWriter`进行高效的文本文件读写。通过运行这些示例,你可以直观地理解IO流的工作原理,并学习...
掌握字符流与字节流的原理及其应用,能够帮助Java开发者更高效、更准确地处理各种数据流,从而提升程序的性能和稳定性。在实际开发中,根据具体需求合理选择数据流类型,是提升代码质量和程序功能的关键。
在Java编程语言中,文件操作是常见的任务之一,特别是在处理大型文件时,有时我们...通过熟练掌握`FileInputStream`和`FileOutputStream`的使用,以及理解字节流的工作原理,我们可以高效地完成文件的分割与合并任务。
这个类允许应用程序与用户的桌面环境进行交互,包括打开文件、发送电子邮件等。例如,如果你想打开这个文件,可以这样做: ```java if (Desktop.isDesktopSupported()) { Desktop desktop = Desktop.getDesktop();...
在Java编程环境中,处理共享文件是一项常见的任务,特别是在企业级应用中,可能需要访问网络上的文件系统资源。Java提供了一些库来实现这一功能,其中之一就是jcifs库,它是一个开源的Java SMB(Server Message ...
首先,我们需要理解文件预览的基本原理:用户通过浏览器发送请求到服务器,服务器处理请求并返回文件内容,然后在浏览器中以适合的方式展示这些内容。为了实现这一过程,我们需要考虑以下几个关键步骤: 1. **文件...