1、流:
它是通过缓冲机制将数据从生产者(如键盘、磁盘文件、内存或其他设备)传送到接受该数据的消费者(如屏幕、文件或者内存等)的这一过程的抽象。
2、有关的Java包:
Java.io包中包括许多类提供许多有关文件的各个方面操作。
3、有关文件名及目录名的类:File 类独立于系统平台,利用构造函数
File( String path)、
File(String path, String FileName)、
File(File dir, String name) 等创建出File 对象;再利用canRead() 、canWrite()、 getParent()、 getPath()等成员函数实现对文件的各个属性的操作。
import java.io.*;
public class FileTest
{ public static void main(String []args)
{
String FileName="C:\\temp\\myfile.dat"
File myFile=new File(FileName);
If( ! myFile. exists() )
{ System.err.println("Can't Find " + FileName);
return;
}
System.out.println("File " + FileName + "is " +myFile.length() + "bytes Long !");
If( myFile. isDirectory() )
{ System.err.println("File" + FileName +"Is a Directory !");
return;
}
}
}
4、有关文件内容(数据)操作的类:
4.1 输入输出抽象基类InputStream/OutputStream ,实现文件内容操作的基本功能函数read()、 write()、close()、skip()等;一般都是创建出其派生类对象(完成指定的特殊功能)来实现文件读写。在文件读写的编程过程中主要应该注意异常处理的技术。
4.2 FileInputStream/FileOutputStream:
用于本地文件读写(二进制格式读写并且是顺序读写,读和写要分别创建出不同的文件流对象);
本地文件读写编程的基本过程为:
① 生成文件流对象(对文件读操作时应该为FileInputStream类,而文件写应该为FileOutputStream类);
② 调用FileInputStream或FileOutputStream类中的功能函数如read()、write(int b)等)读写文件内容;
③ 关闭文件(close())。
4.3 PipedInputStream/PipedOutputStream:
用于管道输入输出(将一个程序或一个线程的输出结果直接连接到另一个程序或一个线程的输入端口,实现两者数据直接传送。操作时需要连结);
4.3.1 管道的连接:
方法之一是通过构造函数直接将某一个程序的输出作为另一个程序的输入,在定义对象时指明目标管道对象
PipedInputStream pInput=new PipedInputStream();
PipedOutputStream pOutput= new PipedOutputStream(pInput);
方法之二是利用双方类中的任一个成员函数 connect()相连接
PipedInputStream pInput=new PipedInputStream();
PipedOutputStream pOutput= new PipedOutputStream();
pinput.connect(pOutput);
4.3.2 管道的输入与输出:
输出管道对象调用write()成员函数输出数据(即向管道的输入端发送数据);而输入管道对象调用read()成员函数可以读起数据(即从输出管道中获得数据)。这主要是借助系统所提供的缓冲机制来实现的。
4.4、随机文件读写:
RandomAccessFile类(它直接继承于Object类而非InputStream/OutputStream类),从而可以实现读写文件中任何位置中的数据(只需要改变文件的读写位置的指针)。
随机文件读写编程的基本过程为:
① 生成流对象并且指明读写类型;
② 移动读写位置;
③ 读写文件内容;
④ 关闭文件。
StringBuffer buf=new StringBuffer();
char ch;
while( (ch=(char)System.in.read()) !='\n')
{
buf.append( ch);
} //读写方式可以为"r" or "rw"
RandomAccessFile myFileStream=new RandomAccessFile("myFile.dat"," rw");
myFileStream . seek(myFileStream.length()) ;
myFileStream.writeBytes(buf.toString()); //将用户从键盘输入的内容添加到文件的尾部
myFileStream.close();
4.5 DataInput/DataOutput接口:实现与机器无关的各种数据格式读写(如readChar() 、readInt()、readLong()、readFloat(),而readLine()将返回一个String)。其中RandomAccessFile类实现了该接口,具有比FileInputStream或FileOutputStream类更灵活的数据读写方式。
4.6 标准输入输出流:System.in(如:char c=System.in.read())和System.out(如:System.out.println()、System.out.println())。
try
{ char ch=System.in.read(); //返回二进制数据(低8位为键盘的ASCII码)
}
catch(IOException e)
{
}
4.7、文件操作的一般方法:
(1)生成一个输入输出文件类的对象(根据所要操作的类型);
(2)调用此类的成员函数实现文件数据内容的读写;
(3)关闭此文件。
Java的文件 读和写
时间: 2024-10-27 01:21:23
Java的文件 读和写的相关文章
PHP中文件读、写、删的操作(PHP中对文件和目录操作)_php实例
一:目录操作 首先介绍的是一个从目录读取的函数,opendir(),readdir(),closedir(),使用的时候是先打开文件句柄,而后迭代列出: 复制代码 代码如下: <?php $base_dir = "filelist/"; $fso = opendir($base_dir); echo $base_dir."<hr/>" ; while($flist=readdir($fso)){ echo $flist."<br/&
Java对文件的追加写,模块设计
编程实践中经常需要对文件的读写,本篇文章做一个文件追加写的模块. 使用FileWriter类 (1)使用的构造函数为(参考JAVA API文档): public FileWriter(String fileName,boolean append) throws IOException (2)参数说明 fileName(String):要写入数据的文件名称. append(boolean):如果为 true,则将数据写入文件末尾处,而不是写入文件开始处:如果为false,表示新建文件直接写入,如果
java 编程-java 对象输出流单独运行写对象对象会被写出来 但是也会报错 单独问我行读对像直接报错
问题描述 java 对象输出流单独运行写对象对象会被写出来 但是也会报错 单独问我行读对像直接报错 package com.vince; import java.io.Serializable; public class Cat implements Serializable { private String name; private int age; private transient String color; public Cat(){ } public Cat(String name,
extjs java-请问使用extjs进行文件上传,extjs前台代码和java后台代码应该怎么写
问题描述 请问使用extjs进行文件上传,extjs前台代码和java后台代码应该怎么写 请问使用extjs进行文件上传,extjs前台代码和java后台代码应该怎么写 解决方案 代码复制一下.http://www.cnblogs.com/hannover/archive/2010/12/02/1894820.htmlhttp://blog.itpub.net/29870867/viewspace-1280697/ 解决方案二: extjs的上传是封装好的,你只需要在后台servlet中接收传过
Python open()函数文件打开、读、写基础操作
说明: python的文件读写和打开操作都有自己特定的函数和方法,操作起来很简单.下面就来简单的了解下python文件的文件基本操作方法有哪些. 一.Python open()函数文件打开操作 打开文件会用到open函数,标准的python打开文件语法如下: 1 open(name[,mode[,buffering]]) open函数的文件名是必须的,而模式和缓冲参数都是可选的.比如说有个a.txt的文本文件,存放在c:\text下,那么你要打开它可以这样操作:
写文件-Java读取文件然后再修改回去
问题描述 Java读取文件然后再修改回去 有一个文件存着很多对象,现在读取其中的一个对象,然后 将其修改,最终再将这个对象再保存回原文件.这个怎么实现.C语言由于可以控制读文件指针,所以可以定位指正到指定的位置,可是Java怎么修改文件指针? 解决方案 可以试试RandomAccessFile类. 解决方案二: 在Java下使用DOM来读取/修改Xml文件java 修改 读取properties文件 解决方案三: 可以试试RandomAccessFile类. 解决方案四: 可以试试RandomA
指针-MFC 我想用主线程写东西到一个文件,同时一个线程从同一文件读东西出来
问题描述 MFC 我想用主线程写东西到一个文件,同时一个线程从同一文件读东西出来 怎么弄?两个文件指针?因为是同一个文件,怎么办?主线程给那个线程传参数时用什么参数,文件的指针?句柄?如果是句柄怎么获得啊? 解决方案 文件有独占打开,有共享打开.你这种情况,肯定得共享打开.你没有说具体的环境,所以很难进一步描述.最简单的就是两个线程各自用共享模式打开同一个文件.期间应该会有一些同步的操作,要注意就可以了 解决方案二: 你需要告诉具体的环境,才能详细描述 解决方案三: CFile:Open()的第
VS能够通过网络读、写安卓系统里的文件吗?
问题描述 有一个安卓系统的设备,比如手机.电视,通过无线网络连接到网络,现在想通过VS开发的WinForm程序,直接去读.写网络上安卓系统设备里的文件,可以办到吗? 解决方案 解决方案二:只有电脑上共享目录可以供某些APP进行操作,还没有看到过反过来的共享.解决方案三:不可能--但你可以再写一个android程序,允许你客户端告诉你的android程序去怎么修改最常见的应用就是各种手机助手解决方案四:需要做个客户端到安卓系统里才行.由客户端处理你放送的操作再把结果返还给你.解决方案五:直接写安卓
java修改文件图标-修改windows下的文件图标,怎样写java应用解决
问题描述 修改windows下的文件图标,怎样写java应用解决 我想用java做一个windows的小桌面应用,实现的功能是修改文件图标(图标是我自己从网上下载的jpg格式或者其他格式的图片). 比如:一个XX.txt 文件,我点击一下java应用,就可以实现将XX.txt 的图标修改为我指定的图片.求教各路大神,万分感激- 解决方案 要调用window API 所以你必须要会这个!