java能否用流在不预先知道文件名的情况下读java 获取文件名后缀夹里的文件作为对象

豆丁微信公众号
君,已阅读到文档的结尾了呢~~
w3school java & java web教程 飞龙整理
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
w3school javajava web教程 飞龙整理
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口这篇文章主要介绍了c++读写文件流实例,大家参考使用吧 掌握文本文件读写的方法 了解二进制文件的读写方法 C++文件流: fstream // 文件流 ifstream // 输入文件流 ofstream // 输出文件流 //创建一个文本文件并写入信息 //同向屏幕上输出信息一样将信息输出至文件 #include&iomanip.h& #include&fstream.h& void main() { ofstream f1(&d:\\me.txt&); //
这篇文章主要介绍了Java用文件流的方式下载网络文件,大家参考使用吧 public HttpServletResponse download(String path, HttpServletResponse response) { try { // path是指欲下载的文件的路径. File file = new File(path); // 取得文件名. String filename = file.getName(); // 取得文件的后缀名. String ext = filename.s
这篇文章主要介绍了C#使用文件流读取文件的方法,涉及C#中FileInfo类操作文件的技巧,需要的朋友可以参考下 本文实例讲述了C#使用文件流读取文件的方法.分享给大家供大家参考.具体如下: using S using System.IO; namespace Client.Chapter_11___File_and_Streams { public class OpenExistingFile { static void Main(string[] args) { FileInfo
这篇文章主要介绍了C#从文件流读取xml文件到DataSet并显示的方法,实例分析了C#操作XML文件的技巧与DataSet的使用方法,需要的朋友可以参考下 本文实例讲述了C#从文件流读取xml文件到DataSet并显示的方法.分享给大家供大家参考.具体实现方法如下: DataSet ds= new DataSet (); FileStream fs = new FileStream (Server.MapPath=(&somexml.xml&),FileMode.Open,FileA
这篇文章主要介绍了.NET中的IO操作之文件流用法,实例分析了.net对文件流的读写操作及编码转换等问题,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了.NET中的IO操作之文件流用法.分享给大家供大家参考.具体分析如下: 读操作 //1.创建文件流 FileStream fsRead =new FileStream(&1.txt&,FileMode.Open); //2.创建缓冲区,正常情况下,是不会直接等于文件大小的.这里只有读,所以就这么干了. byte[] byte
上传文件有四种方式 1:fileupload 2:ftp 3:网络共享 4:文件流写入 我们经常碰到这种困惑,大家都知道fileupload可以通过saveas方法存储文件,但是如果我们想把上传的文件写入到网络中其他服务器该怎么办呢?这样做有两个好处 1:文件集中存储 2:便于扩展 3:便于备份 因为我们接受上传的aspx.cs文件运行于某台服务器,但是我们要写入另外一台服务器,该怎么办呢?通常有三种方法:FTP.文件流写入.网络共享(我还没试验成功) 文件流写入DEMO: index.aspx
一. 静态成员 在一个类中还可以定义静态成员,但静态成员是所有对象公有的.静态成员分为静态数据成员和静态成员函数. 1.静态数据成员 在类中定义静态数据成员的方法就是在该成员的前面加上关键字static. 定义静态数据成员的语句格式如下: class 类名 { -- static 类型说明符 成员名: -- }: 静态数据成员是类的所有对象共享的成员.静态数据成员所占的空间不会随着对象的产生而分配,也不会随着对象的消失而回收.对静态数据成员的操作和类中一般数据成员的操作是不一样的,定义为私有的静
废话少说,直接上代码. p import java.io.BufferedInputS import java.io.BufferedR import java.io.F import java.io.FileInputS import java.io.FileOutputS import java.io.FileR import java.io.FileW import j
问题来源: http://www.cnblogs.com/del/archive//1069523.html#1351197 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdC type TForm1 = class(TForm) Button1: TB Button2: TB
TStream 是一个抽象的基类, 不能直接生成对象. 在具体的应用中, 主要使用它的子孙类: TFileStream: 文件流 TStringStream: 字符串流 TMemoryStream: 内存流 TResourceStream: 资源文件流 THandleStream: 是 TFileStream 的父类.TStream 的子类 TCustomMemoryStream: 是 TMemoryStream 和 TResourceStream 的父类.TStream 的子类 与流相关的常用
与前一篇一样 都是写了下载分类 这个是使用了文件流的方式进行下载,代码相对少了点 下面就只贴上重要代码 // // FileDownload.m // NSURLConnect下载 使用文件流的方式 // // Created by chen on 15/2/17. // Copyright (c) 2015年 lanrw. All rights reserved. // #import &FileDownload.h& @interface FileDownload () &N
请您先阅读: &YAML的Java实现--JYAML基本原理与示例(1)导出数据为YAML格式文件& &YAML的Java实现--JYAML基本原理与示例(2)导入YAML格式文件& 1. FileOutputStream 以流的方式,将数据写入到YAML文件中. /* Output data structure into a YAML file as a FileOutputStream. */ try { YamlEncoder yEncoder = new YamlEncod
这篇文章主要介绍了PHP+iFrame实现页面无需刷新的异步文件上传,包含了iframe框架与form表单的运用及PHP文件上传等技巧,需要的朋友可以参考下 本文实例讲述了PHP+iFrame实现页面无需刷新的异步文件上传,是非常实用的常见技巧.分享给大家供大家参考.具体分析如下: 说到iframe,现在用它的人是越来越少了,并且很多人都相信它应该被AJAX所取代,的确如此,因为AJAX太出色了. 不过有一种情况的实现我还是选择了iframe,这就是本文要说的文件的异步上传,感兴趣的可以试试,如
将文件以二进制流的格式写入数据库:首先获得文件路径,然后将文件以二进制读出保存在一个二进制数组中具体请祥看本文,希望对你有所帮助 1.将文件以二进制流的格式写入数据库 首先获得文件路径,然后将文件以二进制读出保存在一个二进制数组中,与数据库建立连接,在SQL语句中将二进制数组赋值给相应的参数,完成向数据库中写入文件的操作 /// 将文件流写入数据库 /// &/summary& /// &param name=&filePath&&存入数据库文件的路径&/
这篇文章主要介绍了Asp.Net模拟表单提交数据和上传文件的实现代码,本文对3种情况都做了介绍,只有普通数据的表单.只上传文件的表单.包含普通数据和上传文件表单,需要的朋友可以参考下 如果你需要跨域上传内容到另外一个域名并且需要获取返回值,使用Asp.Net的作为代理是最好的办法,要是客户端直接提交到iframe中,由于跨域是无法用javascript获取到iframe中返回的内容的.此时需要在自己的网站做一个动态页作为代理,将表单提交到动态页,动态页负责将表单的内容使用WebClient或Ht
这篇文章主要介绍了Java读写文件创建文件夹等多种操作的方法,大家参考使用吧 出现乱码请修改为 BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(path), &GBK&)); 一.获得控制台用户输入的信息 public String getInputMessage() throws IOException...{ System.out.println(&请输入您
这篇文章主要介绍了Node.js文件操作详解,本文讲解了处理文件路径讲的一些方法.fs模块详细的使用和介绍等内容,需要的朋友可以参考下 Node有一组数据流API,可以像处理网络流那样处理文件,用起来很方便,但是它只允许顺序处理文件,不能随机读写文件.因此,需要使用一些更底层的文件系统操作. 本章覆盖了文件处理的基础知识,包括如何打开文件,读取文件某一部分,写数据,以及关闭文件. Node的很多文件API几乎是UNIX(POSIX)中对应文件API 的翻版,比如使用文件描述符的方式,就像UNIX
假如某网站有个表单,例如(url: http://localhost/login.aspx): 帐号 密码 我们需要在程序中提交数据到这个表单,对于这种表单,我们可以使用 WebClient.UploadData 方法来实现,将所要上传的数据拼成字符即可,程序很简单: string uriString = &http://localhost/login.aspx&; // 创建一个新的 WebClient 实例. WebClient myWebClient = new WebClien
由于在rmi中无法传输文件流,可以先用FileInputStream将文件读到一个Byte数组中,然后把这个Byte数组作为参数传进RMI的方法中,然后在服务器端将Byte数组还原为outputStream,这样就能通过RMI 来传输文件了,下面我们来看实例 为什么要用RMI 在这次的项目中,对于客户端与服务器之间的通信,想了许多办法,由于做的是富客户端应用,最终将技术选定在了RMI和Java-sockets两种之间,其中RMI的灵活性不高,客户端和服务器端都必须是java编写,但使用比较方便
php 目录与文件处理-郑阿奇(续) ,需要的朋友可以参考下. 1.文件目录操作 最顶层止录是磁盘根目录,用'/'或'//' 当前目录 ./ ../表示apache的目录即htdocs目录 1.创建与删除目录 mkdir &?php if(mkdir(&./path&,0700)) //在当前目录中创建path目录 echo &创建成功&; ?& 2.获取和更改当前目录 使用getcwd()函数可以取得当前的工作目录,该函数没有参数.成功则返回当前的工作
你平时是怎么读取文件的?使用流读取.是的没错,C#给我们提供了非常强大的类库(又一次吹捧了.NET一番),里面封装了几乎所有我们可以想到的和我们没有想到的类,流是读取文件的一般手段,那么你真的会用它读取文件中的数据了么?真的能读完全么? 通常我们读取一个文件使用如下的步骤: 1.声明并使用File的OpenRead实例化一个文件流对象,就像下面这样 FileStream fs = File.OpenRead(filename); 或者 FileStream fs = FileStream(fil
php入门学习知识点六 PHP文件的读写操作代码,读取文件内容 可以用以下两个函数进行操作 fread,file_get_contents &?php //打开文件 $fp=fopen('tmp.html', 'r'); //读取文件内容 可以用以下两个函数进行操作 fread,file_get_contents $str=fread($fp, filesize('tmp.html')); //filesize为获取文件大小 $content=file_get_contents('tmp.htm
上次我关于索引的文章有几个园友发站内信问我如何将索引和表存储在不同的硬盘上.我觉的需要专门写一篇文章来讲述一下文件和文件组应该更容易理解 简介 在SQL SERVER中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已.SQL SERVER通过管理逻辑上的文件组的方式来管理文件.理解文件和文件组的概念对于更好的配置数据库来说是最基本的知识. 理解文件和文件组 在SQL SERVER中,通过文件组这个逻辑对象对存放数据的文件进行管理. 先来看一张图:
这篇文章主要介绍了C#基于NPOI生成具有精确列宽行高的Excel文件的方法,是C#项目开发中非常实用的技巧,需要的朋友可以参考下 本文实例讲述了C#基于NPOI生成具有精确列宽行高的Excel文件的方法,是非常具有实用价值的技巧分享给大家供大家参考.具体方法如下:. 一.前言 NPOI是操作Excel的神器,导出导入快如闪电, 但是SetColumnWidth函数个人感觉不会用,怎么弄都无法控制好,因为他是以字符数量去设置宽度,实际上Excel列宽还有个像素的概念,更难搞懂了. //附带Set
把文件打包成Xml文件包,带解包的ASP工具! 把网站源码全部打包到Xml文件里面,生成 updata.xml 文件,把xml文件上传到空间里面 然后通过 install.asp文件将文件全部释放出来. 就和z-blog的 自动安装包一样的功能呵呵. 代码是落伍的一位兄弟写的,不过代码好像有错误,这个是我参考他的 修改过了,可以正常运行!~~ 此代码可以应用到 asp程序的 自动升级服务上面.具体怎么来实现,欢迎探讨!~~ 就在下面回帖探讨!~~~ 不用设定打包目录版,需要设定打包目录版 这两个
Properties类表示了一个持久的属性集.Properties可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串.本文使用java读取这些属性,看下面详细介绍吧 一个属性列表可包含另一个属性列表作为它的&默认值&:如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表. 因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法.但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 S
CI框架源码阅读,系统常量文件constants.php的配置,需要的朋友可以参考一下 配置系统常量 1.当文件系统工作的时候检查并配置这些首选项 文件系统运行的时候这些默认的值会适当的增加系统的安全性,但是在php或apache的底层单独的为每各用户开一个进程的时候,使用八进制的值永远是正确的 FILE_READ_MODE 读取文件的模式 FILE_WRITE_MODE 写入文件的模式 DIR_READ_MODE 读取目录的模式 DIR_WRITE_MODE 写入目录的模式 2.文件流模式 当
前两天用到读写文件的操作,上网搜了一些这方面的资料.很有用的. java中多种方式读文件 一.多种方式读文件内容. 1.按字节读取文件内容 2.按字符读取文件内容 3.按行读取文件内容 4.随机读取文件内容 */ import java.io.BufferedR import java.io.F import java.io.FileInputS import java.io.FileR import java.io.IOE impo
System.IO.Directory类和System.DirectoryInfo类主要提供关于目录的各种操作,使用时需要引用System.IO命名空间.下面通过程序实例来介绍其主要属性和方法 using S using System.Collections.G using System.L using System.T using System.IO; namespace Example { class Program { static void Ma
有时我们需要将来自于客户端的文件上传到WEB服务器端,并在服务端将文件存储到第三方文件服务器中存储,既然有需求,那就有实现了,感兴趣的你可以了解此文,或许对你学习asp.net 起到很好的作用哦 有时我们需要将来自于客户端的文件上传到WEB服务器端,并在服务端将文件存储到第三方文件服务器中存储. 实现如下: 1.在文件服务器B上建立一共享文件夹,同时在该服务器上创建一用户,如DocShareUser,给此用户分配共享文件夹的读写权限 2.在WEB服务器A上也同时传建一同名用户DocShareUs
导出到CSV文件乱码的问题,需要的朋友可以参考下. http://social.microsoft.com/Forums/zh-CN/295/thread/14a833f5-95bf-48ef-b6cf-c string name = System.Configuration.ConfigurationSettings.AppSettings[&downloadurl&].ToString(); FileStream fs = new FileStream(nam
今天没事研究了下Gson,写了个工具类,需要的朋友可以参考下 import java.io.*; /** * Created by tang on 14-3-1. */ public class JsonUtils { //从给定位置读取Json文件 public static String readJson(String path){ //从给定位置获取文件 File file = new File(path); BufferedReader reader = //返回值,使用St
Spring可以继承commons-fileupload插件来实现文件上传的功能.分为前端JSP编写和后台Controller的编写 在实际开发中,经常遇到要实现文件上传到服务器端的功能.Spring可以继承commons-fileupload插件来实现文件上传的功能.分为前端JSP编写和后台Controller的编写. 前期准备工作,首先要引入commons-fileupload这个jar包,pom.xml中的配置如下: &!-- 实现文件上传,spring集成了这个功能 --& &d
通过C#动态生成图书信息XML文件,下面有个不错的示例,需要的朋友可以参考下 通过C#动态生成图书信息XML文件(Books.xml),文件如下: &?xml version=&1.0& encoding=&iso-8859-1&?& &bookstore& &book id=&1& category=&CHILDREN&& &title&Harry Potter&/tit
大家可以看到如下截图,下载文件出现了乱码,在其他浏览器(IE,Chrome....)上没有出现这个问题,解决方法很简单,遇到类似问题的朋友可以了解下哦 下载在FF浏览器下出现了下列问题 但是在其他浏览器(IE,Chrome....)上没有出现这个问题, 需要写一个Utitl类管理下 package com.sencloud.dh.core. import java.io.UnsupportedEncodingE import java.net.URLE
这篇文章主要介绍了C#导出GridView数据到Excel文件类,实例分析了C#使用GridView及Excel的技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了C#导出GridView数据到Excel文件类.分享给大家供大家参考.具体如下: 这段C#代码自定义了一个封装类,用于将GridView数据导出到Excel文件 using S using System.W using System.Web.UI; using System.IO; using Syst
今天和大家分享如何利用PHP技术实现文件读写之文件写入操作教程,也算是对PHP文件读写操作的入门学习. 在PHP网站开发中,存储数据通常有两种方式,一种以文本文件方式存储,比如txt文件,一种是以数据库方式存储,比如Mysql,相对于数据库存储,文件存储并没有什么优势,但是文件读写操作在基本的PHP开发中还是时有使用,今天和大家分享如何利用PHP技术实现文件读写之文件写入操作教程,也算是对PHP文件读写操作的入门学习. 将数据写入文件的操作主要涉及三个步骤及部分文件操作函数如下: 1.打开文件(
本篇文章是对php中读取文件内容的几种方法进行了详细的分析介绍,需要的朋友参考下 示例代码1: 用file_get_contents 以get方式获取内容 &?php $url='http://www.baidu.com/'; $html=file_get_contents($url); //print_r($http_response_header); ec($html); printhr(); printarr($http_response_header); printhr(); ?& 示
C#读写文件的方法汇总,需要的朋友可以参考一下 1.使用FileStream读写文件 文件头: using S using System.Collections.G using System.T using System.IO; 读文件核心代码: 复制代码 代码如下: byte[] byData = new byte[100]; char[] charData = new char[1000]; try { FileStream sFile = new File
一个文件夹加密小工具,该工具是操作文件夹名称的方法实现文件夹的一般加密,文件夹中的文件(视频.图片等)都原封不动的保存在那里 DebugLZQ在网上搜索相关文件加密的程序,发现给出的基本都是针对&字符创&.&文本&的加密与解密.对视频文件.图片等一般文件的加密解密程序少之又少,故写下此文,实现一个对一般文件进行加密的小工具. 程序的主要功能是:用户通过文件选择框选择要加密的文件-&输入密码进行加密:选择加密后的文件,输入密码进行解密. 程序的主界面如下: 三个
脚本放在定时任务里代替服务定时执行一些操作比较方便,下面是实现删除文件夹下N天前创建的文件的vbs脚本 脚本放在定时任务里代替服务定时执行一些操作比较方便,下面是实现删除文件夹下N天前创建的文件的vbs脚本,在配置文件 DelFolderList.txt 中配置要删除的文件路径,ONLY-DEL-FILES 下的路径 是只删除其下的文件,不删除其内的子目录的文件.DEL-FOLDER-FILES下的路径 是删除其内文件及其子目录内的文件,子目录为空时删除目录,删除的文件list 放在log文件夹
其实/FileShare就是控制文件流的&访问权限&,当然,这仅仅是入门的文件操作,自己做了笔记,也希望能给大家带来帮助 开发过程中,我们往往需要大量与文件交互,读文件,写文件已成家常便饭,本地运行完美,但一上到投产环境,往往会出现很多令人措手不及的意外,或开发中的烦恼,因此,我对普通的C#文件操作做了一次总结,问题大部分如下: 1:写入一些内容到某个文件中,在另一个进程/线程/后续操作中要读取文件内容的时候报异常,提示 System.IO.IOException: 文件&X
这篇文章主要介绍了C#常用目录文件操作类,实例分析了C#针对目录的读取.检测及查找等相关操作技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了C#常用目录文件操作类.分享给大家供大家参考.具体分析如下: 这个c#类封装了常用的目录操作,包括列出目录下的文件.检测目录是否存在.得到目录下的文件列表.检测目录是否为空.查找目录下的文件等等功能 using S using System.T using System.IO; namespace DotNet.Utiliti
在asp.net中导出Execl有两种方法.一种是将导出的文件存放在服务器某个文件夹下面.一种是将文件直接将文件输出流写给浏览器 一.asp.net中导出Execl的方法: 在asp.net中导出Execl有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出流写给浏览器.在Response输出时,\t分隔的数据,导出execl时,等价于分列,\n等价于换行. 1.将整个html全部输出execl 此法将html中所有的内容,如按钮,表
java实现大文件分割与合并的实例代码,需要的朋友可以参考一下 package com. import java.io.BufferedR import java.io.BufferedW import java.io.FileNotFoundE import java.io.FileR import java.io.FileW import java.io.IOE import java.util.C
本篇文章是对C语言中的文件操作函数进行了详细的总结分析,需要的朋友参考下 fopen(打开文件)相关函数 open,fclose 表头文件 #include&stdio.h& 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态. mode有下列几种形态字符串:r 打开只读文件,该文件必须存在. r+ 打开可读写的文件,该文件必须存在. w 打开
这篇文章主要介绍了Javascript写入txt和读取txt文件的方法,需要的朋友可以参考下 1. 写入 FileSystemObject可以将文件翻译成文件流. 第一步: 例: Var fso=new ActiveXObject(Scripting.FileSystemObject); 创建一个可以将文件翻译成文件流的对象. 第二步:用于创建一个textStream 对象 括号里边有三个属性 1. 文件的绝对路径 2. 文件的常数 只读=1,只写=2 ,追加=8 等权限.(ForReading
本篇文章主要是对PHP判断远程图片或文件是否存在的实现代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 最简单的方法就是用fopen(),看看文件能否打开,能打就文件当然就存在 &?php $url = 'http://www.jb51.net/images/test.jpg'; if( @fopen( $url, 'r' ) ) { echo 'File Exits'; } else { echo 'File Do Not Exits'; } ?& 语法:fopen(filena
我在以前写过怎么使用c#来压缩和解压缩swf文件,解压缩,压缩和读取flash头文件信息 使用php就不一样了,php包含了zlib的链接库,可以直接使用其相关功能,下面是我写的压缩和结压缩swf文件的例子: //没有加入判断swf文件是否已经压缩,入需要可以根据文件的第一个字节是'F'或者'C'来判断 压缩swf文件: //--------------------------------------------------------------------------------------
本篇文章是对php中的打开文件fopen函数的使用进行了详细的分析介绍,需要的朋友参考下 1.resource fopen(string $filename, string $mode [,bool $use_include_path [, resource $zcontext]]) 函数功能:fopen() 将 filename 指定的名字资源绑定到一个流上.如果filename 是 &scheme://...& 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协
Copyright (C) , All Rights Reserved.
版权所有 闽ICP备号
processed in 0.049 (s). 11 q(s)Java程序员从笨鸟到菜鸟之(六)I/O流操作
我的图书馆
Java程序员从笨鸟到菜鸟之(六)I/O流操作
在软件开发中,数据流和数据库操作占据了一个很重要的位置,所以,熟悉操作数据流和数据库,对于每一个开发者来说都是很重要的,今天就来总结一下I/O,数据库操作一:从数据流开始首先先有一个结构图看一下整个数据流中的API结构和对象继承关系信息:其他常用与流有关的对象:首先从字符流开始1、字符流的由来:&&&&因为文件编码的不同,而有了对字符进行高效操作的字符流对象。&&&&原理:其实就是基于字节流读取字节时,去查了指定的码表。字节流和字符流的区别:1,字节流读取的时候,读到一个字节就返回一个字节。字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,UTF-8码表中是3个字节)时。先去查指定的编码表,将查到的字符返回。2,字节流可以处理所有类型数据,如图片,mp3,avi。而字符流只能处理字符数据。结论:只要是处理纯文本数据,就要优先考虑使用字符流。除此之外都用节流。基本的读写操作方式:因为数据通常都以文件形式存在。所以就要找到IO体系中可以用于操作文件的流对象。通过名称可以更容易获取该对象。因为IO体系中的子类名后缀绝大部分是父类名称。而前缀都是体现子类功能的名字。Reader&&&|--InputStreamReader&&&&&&&&&&&&|--FileReader:专门用于处理文件的字符读取流对象。Writer&&&&|--OutputStreamWriter&&&&&&&&&&&&&&&&&&|--FileWriter:专门用于处理文件的字符写入流对象。Reader中的常见的方法:1,int&read():读取一个字符。返回的是读到的那个字符。如果读到流的末尾,返回-1.2,int&read(char[]):将读到的字符存入指定的数组中,返回的是读到的字符个数,也就是往数组里装的元素的个数。如果读到流的末尾,返回-1.3,close():读取字符其实用的是window系统的功能,就希望使用完毕后,进行资源的释放Writer中的常见的方法:1,write(ch):&将一个字符写入到流中。2,write(char[]):&将一个字符数组写入到流中。3,write(String):&将一个字符串写入到流中。4,flush():刷新流,将流中的数据刷新到目的地中,流还存在。5,close():关闭资源:在关闭前会先调用flush(),刷新流中的数据去目的地。然流关闭。FileWriter:该类没有特有的方法只有自己的构造函数。该类特点在于1,用于处理文本文件。2,该类中有默认的编码表,3,该类中有临时缓冲。构造函数:在写入流对象初始化时,必须要有一个存储数据的目的地。对于读取或者写入流对象的构造函数,以及读写方法,还有刷新关闭功能都会抛出IOException或其子类。所以都要进行处理。或者throws抛出,或者try&catch处理另一个小细节:当指定绝对路径时,定义目录分隔符有两种方式:1,反斜线但是一定要写两个。\\new&FileWriter("c:\\demo.txt");2,斜线/&&写一个即可。new&FileWriter("c:/demo.txt");一个读取文本文件的经典例子:字符流的缓冲区:缓冲区的出现提高了对流的操作效率。原理:其实就是将数组进行封装。对应的对象:BufferedWriter:特有方法:newLine():跨平台的换行符。BufferedReader:特有方法:readLine():一次读一行,到行标记时,将行标记之前的字符数据作为字符串返回。当读到末尾时,返回null。在使用缓冲区对象时,要明确,缓冲的存在是为了增强流的功能而存在,所以在建立缓冲区对象时,要先有流对象存在。其实缓冲内部就是在使用流对象的方法,只不过加入了数组对数据进行了临时存储。为了提高操作数据的效率。代码上的体现:写入缓冲区对象。//建立缓冲区对象必须把流对象作为参数传递给缓冲区的构造函数。BufferedWriter&bufw&=&new&BufferedWriter(new&FileWriter("buf.txt"));bufw.write("abce");//将数据写入到了缓冲区。bufw.flush();//对缓冲区的数据进行刷新。将数据刷到目的地中。bufw.close();//关闭缓冲区,其实关闭的是被包装在内部的流对象。读取缓冲区对象。BufferedReader&bufr&=&new&BufferedReader(new&FileReader("buf.txt"));String&line&=&//按照行的形式取出数据。取出的每一个行数据不包含回车符。while((line=bufr.readLine())!=null){System.out.println(line);}bufr.close();readLine():方法的原理:其实缓冲区中的该方法,用的还是与缓冲区关联的流对象的read方法。只不过,每一次读到一个字符,先不进行具体操作,先进行临时存储。当读取到回车标记时,将临时容器中存储的数据一次性返回。既然明确了原理,我们也可以实现一个类似功能的方法。然后说一下字节流:抽象基类:InputStream,OutputStream。字节流可以操作任何数据。注意:字符流使用的数组是字符数组。char&[]&chs字节流使用的数组是字节数组。byte&[]&btFileOutputStream&fos&=&new&FileOutputStream("a.txt");fos.write("abcde");//直接将数据写入到了目的地。fos.close();//只关闭资源。FileInputStream&fis&=&new&FileInputStream("a.txt");//fis.available();//获取关联的文件的字节数。//如果文件体积不是很大。//可以这样操作。byte[]&buf&=&new&byte[fis.available()];//创建一个刚刚好的缓冲区。//但是这有一个弊端,就是文件过大,大小超出jvm的内容空间时,会内存溢出。&&&&&fis.read(buf);&&&&&一个小问题:字节流的read()方法读取一个字节。为什么返回的不是byte类型,而是int类型呢?因为read方法读到末尾时返回的是-1,而在所操作的数据中的很容易出现连续多个1的情况,而连续读到8个1,就是-1,导致读取会提前停止。所以将读到的一个字节给提升为一个int类型的数值,但是只保留原字节,并在剩余二进制位补0.对于write方法,可以一次写入一个字节,但接收的是一个int类型数值。只写入该int类型的数值的最低一个字节(8位)。简单说:read方法对读到的数据进行提升。write对操作的数据进行转换。这是神马意思???转换流:特点:1,是字节流和字符流之间的桥梁。2,该流对象中可以对读取到的字节数据进行指定编码表的编码转换。什么时候使用呢?1,当字节和字符之间有转换动作时。2,流操作的数据需要进行编码表的指定时。具体的对象体现:1,InputStreamReader:字节到字符的桥梁。2,OutputStreamWriter:字符到字节的桥梁。这两个流对象是字符流体系中的成员。那么它们有转换作用,而本身又是字符流。所以在构造的时候,需要传入字节流对象进来。构造函数:InputStreamReader(InputStream):通过该构造函数初始化,使用的是本系统默认的编码表GBK。InputStreamReader(InputStream,String&charSet):通过该构造函数初始化,可以指定编码表。OutputStreamWriter(OutputStream):通过该构造函数初始化,使用的是本系统默认的编码表GBK。OutputStreamWriter(OutputStream,String&charSet):通过该构造函数初始化,可以指定编码表。可以和流相关联的集合对象Properties.Map&&|--Hashtable&&&&&|--PropertiesProperties:该集合不需要泛型,因为该集合中的键值对都是String类型。1,存入键值对:setProperty(key,value);2,获取指定键对应的值:value&getProperty(key);3,获取集合中所有键元素:Enumeration&&propertyNames();在jdk1.6版本给该类提供一个新的方法。Set&String&&stringPropertyNames();4,列出该集合中的所有键值对,可以通过参数打印流指定列出到的目的地。list(PrintStream);list(PrintWriter);例:list(System.out):将集合中的键值对打印到控制台。list(new&PrintStream("prop.txt")):将集合中的键值对存储到prop.txt文件中。5,可以将流中的规则数据加载进行集合,并称为键值对。load(InputStream):jdk1.6版本。提供了新的方法。load(Reader):注意:流中的数据要是"键=值"&的规则数据。6,可以将集合中的数据进行指定目的的存储。store(OutputStram,String&comment)方法。jdk1.6版本。提供了新的方法。store(Writer&,String&comment):使用该方法存储时,会带着当时存储的时间。File类:该类的出现是对文件系统的中的文件以及文件夹进行对象的封装。可以通过对象的思想来操作文件以及文件夹。1,构造函数:File(String&filename):将一个字符串路径(相对或者绝对)封装成File对象,该路径是可存在的,也可以是不存在。File(String&parent,String&child);File(File&parent,String&child);2,特别的字段:separator:跨平台的目录分隔符。如:File&file&=&new&File("c:"+File.separator+"abc"+File.separator+"a.txt");3,常见方法:1,创建:boolean&createNewFile()throws&IOException:创建文件,如果被创建的文件已经存在,则不创建。boolean&mkdir():&创建文件夹。boolean&mkdirs():&创建多级文件夹。2,删除:boolean&delete():可用于删除文件或者文件夹。注意:对于文件夹只能删除不带内容的空文件夹,对于带有内容的文件夹,不可以直接删除,必须要从里往外删除。void&deleteOnExit():&删除动作交给系统完成。无论是否反生异常,系统在退出时执行删除动作。3,判断:boolean&canExecute():boolean&canWrite():boolean&canRead();boolean&exists():判断文件或者文件夹是否存在。boolean&isFile():&判断File对象中封装的是否是文件。boolean&isDirectory():判断File对象中封装的是否是文件夹。boolean&isHidden():判断文件或者文件夹是否隐藏。在获取硬盘文件或者文件夹时,对于系统目录中的文件,java是无法访问的,所以在遍历,可以避免遍历隐藏文件。4,获取:getName():获取文件或者文件夹的名称。getPath():File对象中封装的路径是什么,获取的就是什么。getAbsolutePath():无论File对象中封装的路径是什么,获取的都是绝对路径。getParent():&获取File对象封装文件或者文件夹的父目录。注意:如果封装的是相对路径,那么返回的是null.long&length():获取文件大小。longlastModified():获取文件或者文件最后一次修改的时间。static&File[]&listRoots():获取的是被系统中有效的盘符。String[]&list():获取指定目录下当前的文件以及文件夹名称。String[]&list(Filenamefilter):&可以根据指定的过滤器,过滤后的文件及文件夹名称。File[]&listFiles():获取指定目录下的文件以及文件夹对象。5,重命名:renameTo(File):File&f1&=&new&File("c:\\a.txt");File&f2&=&new&File("c:\\b.txt");f1.renameTo(f2);//将c盘下的a.txt文件改名为b.txt文件。对象的序列化。ObjectInputStreamObjectOutputStream可以通过这两个流对象直接操作已有对象并将对象进行本地持久化存储。存储后的对象可以进行网络传输。Serializable:该接口其实就是一个没有方法的标记接口。用于给类指定一个UID。该UID是通过类中的可序列化成员的数字签名运算出来的一个long型的值。只要是这些成员没有变化,那么该值每次运算都一样。该值用于判断被序列化的对象和类文件是否兼容。如果被序列化的对象需要被不同的类版本所兼容。可以在类中自定义UID。定义方式:static&final&long&serialVersionUID&=&42L;注意:对应静态的成员变量,不会被序列化。对应非静态也不想被序列化的成员而言,可以通过transient关键字修饰。通常,这两个对象成对使用。————————————————————————————————————其他的数据操作流操作基本数据类型的流对象。DataInputStreamDataInputStream(InputStream);操作基本数据类型的方法:int&readInt():一次读取四个字节,并将其转成int值。boolean&readBoolean():一次读取一个字节。short&readShort();long&readLong();剩下的数据类型一样。String&readUTF():按照utf-8修改版读取字符。注意,它只能读writeUTF()写入的字符数据。DataOutputStreamDataOutputStream(OutputStream):操作基本数据类型的方法:writeInt(int):一次写入四个字节。注意和write(int)不同。write(int)只将该整数的最低一个8位写入。剩余三个8位丢弃。writeBoolean(boolean);writeShort(short);writeLong(long);剩下是数据类型也也一样。writeUTF(String):按照utf-8修改版将字符数据进行存储。只能通过readUTF读取。通常只要操作基本数据类型的数据。就需要通过DataStram进行包装。通常成对使用。————————————————————————————————————操作数组的流对象。1,操作字节数组ByteArrayInputStreamByteArrayOutputStreamtoByteArray();toString();writeTo(OutputStream);2,操作字符数组。CharArrayReaderCharArrayWriter对于这些流,源是内存。目的也是内存。而且这些流并未调用系统资源。使用的就是内存中的数组。所以这些在使用的时候不需要close。操作数组的读取流在构造时,必须要明确一个数据源。所以要传入相对应的数组。对于操作数组的写入流,在构造函数可以使用空参数。因为它内置了一个可变长度数组作为缓冲区。
喜欢该文的人也喜欢}

我要回帖

更多关于 java 更改文件名 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信