- 浏览: 124706 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
ssy8110:
[color=orange][/color]
Drools规则引擎初学入门实例HelloWorld -
路小尘:
mark
java 浮点数表示详解 -
yujian58:
写的很棒。
spring log4j -
wolf9s:
很好,学习了。非常感谢!
java 编译路径以及运行路径 -
suie2009_:
文章不错,但转载请指明出处,
java volatile关键字
Input和Output是同一类,而Reader和Writer另属同一类
Reader支持16位的Unicode字符的输出,而InputStream只支持8位字符输出。他们的大概结构如下:
InputStream的子类有:
FileInputStream,FilterInputStream,ObjectInputStream,StringBufferInputStream等
OutputStream的子类有:
ByteArrayOutputStream,FileOutputStream,FilterOutputStream,PipedOutputStream,ObjectOutputStream。
Reader的子类有:BufferdReader,InputStreamReader,FilterReader,StringReader,PipedReader,CharArrayReader。
Writer的子类有: BufferedWriter,CharArrayWriter,FilterWriter,OutputStreamWriter,PipedWriter,PrintWriter,StringWriter。
曾遇到一个面试题:
请选择下面的这却答案:
a. System.out 是一个PrintStream。
b. System.out 是一个OutputStream。
c. System.out 是一个FilterOutputStream。
d. System.out 不是一个PrintStream。
e. System.out 在异常时,将抛出IOExcepton。
由于System.out 是一个PrintStream的一个子类,并且PrintStream对象并没有抛出IOException异常。
所以可以看出答案:a b c
例一:InputStream读取文件的应用:
Java代码
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
<SPAN style="COLOR: #339966">/**
*
* @author liugao ec06 cumt
*
*/</SPAN>
public class TestJavaIo {
<SPAN style="COLOR: #339966">/**
* @param args
*/</SPAN>
public static void main(String[] args) {
int b=0;
long num=0;
InputStream in=null;
try {
in=new FileInputStream("D:/a.txt");
} catch (FileNotFoundException e) {
System.out.println("文件找不到");
System.exit(-1);
}
try{
while((b=in.read()) !=-1){ <SPAN style="COLOR: #339966">//b读取是字符的AI码</SPAN>
System.out.println((char)b);
num++;
}
in.close();
System.out.println();
System.out.println("共读取了" + num + "个字节");
}catch(IOException e){
System.out.println("文件读取错误");
System.exit(-1);
}
}
}
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
/**
*
* @author liugao ec06 cumt
*
*/
public class TestJavaIo {
/**
* @param args
*/
public static void main(String[] args) {
int b=0;
long num=0;
InputStream in=null;
try {
in=new FileInputStream("D:/a.txt");
} catch (FileNotFoundException e) {
System.out.println("文件找不到");
System.exit(-1);
}
try{
while((b=in.read()) !=-1){ //b读取是字符的AI码
System.out.println((char)b);
num++;
}
in.close();
System.out.println();
System.out.println("共读取了" + num + "个字节");
}catch(IOException e){
System.out.println("文件读取错误");
System.exit(-1);
}
}
}
例二:FileReader的应用:
Java代码
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
<SPAN style="COLOR: #339966">/**
*
* @author ec06cumt
*
*/</SPAN>
public class TestFileReader {
<SPAN style="COLOR: #339966"> /**
* @param args
*/</SPAN>
public static void main(String[] args) {
FileReader fr=null;
int c=0;
int ln=0;
try {
fr=new FileReader("D:/a.txt");
while((c=fr.read())!=-1){
System.out.println((char)c);
ln++;
}
fr.close();
<SPAN style="COLOR: #339966">//主要这里的ln的值,当有中文字符时,一个中文字符还是算一个,
//但InputStream时就一个中文就两个,由此可以看出Reader和Input的区别</SPAN>
System.out.println("共有:"+ln+"个字符");
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
/**
*
* @author ec06cumt
*
*/
public class TestFileReader {
/**
* @param args
*/
public static void main(String[] args) {
FileReader fr=null;
int c=0;
int ln=0;
try {
fr=new FileReader("D:/a.txt");
while((c=fr.read())!=-1){
System.out.println((char)c);
ln++;
}
fr.close();
//主要这里的ln的值,当有中文字符时,一个中文字符还是算一个,
//但InputStream时就一个中文就两个,由此可以看出Reader和Input的区别
System.out.println("共有:"+ln+"个字符");
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}
}
例三:BufferedReader与BufferWriter的应用:
Java代码
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
<SPAN style="COLOR: #339966">/**
* BufferReader和BufferWriter的应用示例
* @author ec06cumt
*
*/</SPAN>
public class TestBufferedReader {
<SPAN style="COLOR: #339966">/**
* @param args
*/</SPAN>
public static void main(String[] args) {
try {
<SPAN style="COLOR: #339966">//BuffererReader等就像在原来的字节流的基础上套一个更大的水管,
//让出水量更大读取的速度更快。</SPAN>
BufferedWriter bw=new BufferedWriter(new FileWriter("D:/aa.txt"));
BufferedReader br=new BufferedReader(new FileReader("D://aa.txt"));
String s=null;
for(int i=0;i<=100;i++){
s=String.valueOf(10+(long)(Math.random()*30));
bw.write(s);
bw.newLine(); <SPAN style="COLOR: #339966">//创建一个换行的标记</SPAN>
}
bw.flush(); <SPAN style="COLOR: #339966"> //刷新缓冲区域。</SPAN>
while((s=br.readLine())!=null){ <SPAN style="COLOR: #339966">//readLine 就是水管的一个应用吧</SPAN>
System.out.println(s);
}
bw.close();
br.close();
} catch (IOException e) {
System.out.println("写入错误");
}
}
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/**
* BufferReader和BufferWriter的应用示例
* @author ec06cumt
*
*/
public class TestBufferedReader {
/**
* @param args
*/
public static void main(String[] args) {
try {
//BuffererReader等就像在原来的字节流的基础上套一个更大的水管,
//让出水量更大读取的速度更快。
BufferedWriter bw=new BufferedWriter(new FileWriter("D:/aa.txt"));
BufferedReader br=new BufferedReader(new FileReader("D://aa.txt"));
String s=null;
for(int i=0;i<=100;i++){
s=String.valueOf(10+(long)(Math.random()*30));
bw.write(s);
bw.newLine(); //创建一个换行的标记
}
bw.flush(); //刷新缓冲区域。
while((s=br.readLine())!=null){ //readLine 就是水管的一个应用吧
System.out.println(s);
}
bw.close();
br.close();
} catch (IOException e) {
System.out.println("写入错误");
}
}
}
例四:DataStream的应用:
Java代码
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
<SPAN style="COLOR: #339966">/**
*
* @author ec06cumt
*
*/</SPAN>
public class TestDataStream {
<SPAN style="COLOR: #339966">/**
* @param args
*/</SPAN>
public static void main(String[] args) {
ByteArrayOutputStream bos=new ByteArrayOutputStream();
DataOutputStream dos=new DataOutputStream(bos);
try {
<SPAN style="COLOR: #339966">// dos.writeFloat((float) Math.random());
// dos.writeLong((long) Math.random());
// dos.writeDouble((double) Math.random());
// dos.writeChar((char) Math.random());</SPAN>
dos.writeShort((short) Math.random());
dos.writeBoolean(true);
//注意ByteArrayInputStream的构造方法是参数要是一个数组
ByteArrayInputStream bais=new ByteArrayInputStream(bos.toByteArray());
DataInputStream dis=new DataInputStream(bais);
System.out.println(dis.available());
//System.out.println(dis.readDouble());
<SPAN style="COLOR: #339966">// System.out.println(dis.readInt());
// System.out.println(dis.readFloat());
// System.out.println(dis.readDouble());
// System.out.println(dis.readChar());</SPAN>
System.out.println(dis.readShort());
System.out.println(dis.readBoolean());
bos.close();
bais.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
/**
*
* @author ec06cumt
*
*/
public class TestDataStream {
/**
* @param args
*/
public static void main(String[] args) {
ByteArrayOutputStream bos=new ByteArrayOutputStream();
DataOutputStream dos=new DataOutputStream(bos);
try {
// dos.writeFloat((float) Math.random());
// dos.writeLong((long) Math.random());
// dos.writeDouble((double) Math.random());
// dos.writeChar((char) Math.random());
dos.writeShort((short) Math.random());
dos.writeBoolean(true);
//注意ByteArrayInputStream的构造方法是参数要是一个数组
ByteArrayInputStream bais=new ByteArrayInputStream(bos.toByteArray());
DataInputStream dis=new DataInputStream(bais);
System.out.println(dis.available());
//System.out.println(dis.readDouble());
// System.out.println(dis.readInt());
// System.out.println(dis.readFloat());
// System.out.println(dis.readDouble());
// System.out.println(dis.readChar());
System.out.println(dis.readShort());
System.out.println(dis.readBoolean());
bos.close();
bais.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
例五:ObjectStream的应用
Java代码
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
<SPAN style="COLOR: #339966">/**
* 对象的写入和读取
* @author ec06cumt
*
*/</SPAN>
public class TestObjectStream {
<SPAN style="COLOR: #339966">/**
* @param args
*/</SPAN>
public static void main(String[] args) {
T t=new T();
t.k=10;
try {
FileOutputStream fos=new FileOutputStream("D:/testObjectIo.bak");
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(t);
oos.flush();
oos.close();
FileInputStream fis=new FileInputStream("D:/testObjectIo.bak");
ObjectInputStream bis=new ObjectInputStream(fis);
T tReader= (T) bis.readObject();
System.out.println(tReader.i + " " +tReader.j + " "+tReader.d + " " + tReader.k);
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e1){
e1.printStackTrace();
}catch(ClassNotFoundException e2){
e2.printStackTrace();
}
}
}
class T implements Serializable{
int i=2;
int j=4;
double d=2.5;
transient int k=15;
// int k=15;
}
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
/**
* 对象的写入和读取
* @author ec06cumt
*
*/
public class TestObjectStream {
/**
* @param args
*/
public static void main(String[] args) {
T t=new T();
t.k=10;
try {
FileOutputStream fos=new FileOutputStream("D:/testObjectIo.bak");
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(t);
oos.flush();
oos.close();
FileInputStream fis=new FileInputStream("D:/testObjectIo.bak");
ObjectInputStream bis=new ObjectInputStream(fis);
T tReader= (T) bis.readObject();
System.out.println(tReader.i + " " +tReader.j + " "+tReader.d + " " + tReader.k);
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e1){
e1.printStackTrace();
}catch(ClassNotFoundException e2){
e2.printStackTrace();
}
}
}
class T implements Serializable{
int i=2;
int j=4;
double d=2.5;
transient int k=15;
// int k=15;
}
例六:文件的目录复制
Java代码
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class JavaIoCopyFile {
<SPAN style="COLOR: #339966">/**
* Author:liugao ec06-2 cumt
* @param args
*/</SPAN>
public static void main(String[] args) {
File sourceFile=new File("D:/test");
File targetFile=new File("F:/jstl");
copy(sourceFile,targetFile);
}
private static void copy(File sourceFile, File targetFile) {
File tarpath=new File(targetFile,sourceFile.getName());
if(sourceFile.isDirectory()){
tarpath.mkdir();
File[] dir=sourceFile.listFiles();
for(int i=0;i<dir.length;i++){
copy(dir[i],tarpath);
}
}else{
try {
InputStream is=new FileInputStream(sourceFile);
OutputStream os=new FileOutputStream(tarpath);
byte[] buf=new byte[1024];
int len=0;
while((len= is.read(buf))!=-1){
os.write(buf);
}
System.out.println("复制完成");
is.close();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e1){
e1.printStackTrace();
}
}
}
}
发表评论
-
java 强引用,弱引用,虚引用
2011-03-20 16:06 16061.对象的强、软、弱和 ... -
各大资源网站收集
2010-12-28 09:43 977xmpp协议 http://blog.csdn.net/qia ... -
jdbc和Mysql/SQLServer数据类型对应关系
2010-12-14 18:35 1998当前列 ClassName ColumnType ... -
java volatile关键字
2010-12-12 11:28 1339Java 语言中的 volatile 变量可以被看作是一种 “ ... -
java 浮点数表示详解
2010-08-02 15:16 14945定点数表达法的缺点在 ... -
threadLocal 详解
2010-06-30 17:46 843ThreadLocal是什么 早在JDK ... -
java格式化format
2010-06-08 16:33 1933在C中可以使用类似printf(“%d %8.2f\\n”, ... -
java 编译路径以及运行路径
2010-05-19 23:06 4890Java中的类路径分“编译后的存放路径” 和 “运行时的查找路 ... -
java 类加载器
2010-05-19 23:04 10321.Java中的所有类,必须被装载到jvm中才能运行,这个装载 ... -
java注释规范
2010-04-21 17:27 1302JAVA注释方法及格式 1、单行(single-line)-- ... -
Junit 4
2010-02-26 10:32 1236一、简介 Junit 4是Junit框架有史以来的最大改进,其 ... -
Struts2使用validate方法验证数据
2010-02-25 10:45 1428Struts2使用validate方法验 ... -
Drools规则引擎初学入门实例HelloWorld
2010-02-24 23:06 51222009-01-14 11:32(1)下载eclipse(ww ... -
java规则引擎的原理
2010-02-24 23:03 2379摘 要 Java规则引擎是一 ... -
DRL文件语法规则
2010-02-24 23:00 3147一个典型的DRL文件: Java代码 ①package ... -
jQuery index
2010-02-24 13:10 1136日历 jQuery新书推荐 index(subject) ... -
jquery中eq和get
2010-02-24 12:53 2368jquery中eq和get如何使用2009-12-30 17: ... -
jquery中使用:has()
2010-02-24 12:46 2698jquery中使用:has()可以很方便的查找一些元素,但要注 ... -
Memcache
2010-02-24 11:19 4987一 目的: 在服务 ... -
泛型(generics)
2010-02-24 10:38 1148摘要和关键字 generics、type saf ...
相关推荐
专业的课程讲解 所有的程序都离不开信息的输入和输出。例如,从键盘读取数据、在网络上交换数据、打印报表、读写文件信息等,都要涉及数据输入输出的处理。...在Java中,处理数据流的类主要被放在java.io包中 。
java.io包详细解说,讲得很详细 同类文档:Java-从Decorator,Adapter模式看Java IO库,已上传
串口通讯需要的jar包,gnu.io.SerialPort; gnu.io.CommPortIdentifier; gnu.io.SerialPort; gnu.io.SerialPortEvent; gnu.io.SerialPortEventListener; gnu.io.UnsupportedCommOperationException; Copy RXTXcomm...
了解java.io包 运用File类对文件或目录的属性进行操作 理解流,理解输入/输出流的概念 运用FileInputStream类和FileOutputStream类读/写字节文件 运用FileReader类和FileWriter类配合BufferedReader类和...
串口通信gnu.io包不存在,这里提供jar包,下载导入即可,亲测可用
使用Date 类获取系统当前时间 Calendar类的使用 使用 Random 类的对象生成随机数 Collection 类的对象的使用 HashMap 对象以键和值的关系形式存储数据
网上找来了相关java文件,改文件包主要用于解决类似找不到sun.io.CharToByteConverter类及相关方法情况,放到对应引用文件目录下编译即可。 PS:java文件编码格式为UTF-8,如果有其它编码格式,自己调整一下就行,我...
socket.io,socket.io-client 用于java或android连接nodejs websocket
开发java时,使用的一个引用包,平时dos中测试开发小程序时,可能缺少;
org.apache.commons.io的jar包集合,少了啥欢迎补充
用java写socket.io客户端所需jar包,
这是学Java的时候教程上的习题,上传供大家学习学习,希望大家上传更多的资源
git下载的最新的socket.io,已通过ant打包成jar,https://github.com/Gottox/socket.io-java-client, 大家也可以通过这个链接自己下载
java的jdk源码解析,主要解析io、nio相关的类组织结构图
本资源具体讲述了java io包的使用及分类,本人感觉相比其它教程还是比较出色的,本人亲身体验过,肯定不欺骗,希望大家多多支持,踊跃留言
处于开发阶段,jsp使用SQL Server 2000数据库驱动包"java.util.*,java.io.*,com.student.bean.*,com.student.encrypt.*,com.student.jdbc.*;"%>
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import ...
该存储库包含用Java语言编写的Socket.IO客户端实现。 如果您不了解socket.io,则它基本上是一个旨在提供实时,双向和基于事件的通信的框架。 您可以访问以了解更多信息。 安装 您可以使用以下方法安装该库: Maven ...
java基础io包,字符流和字节流 PPT