- 浏览: 107722 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wxynxyo:
非常感谢,解决了一个问题
Spring MVC 类型转换 @InitBinder使用 转 -
hxsmile:
很清晰明了
MyEclipse下XFire开发Webservice实例 -
yaoyy:
...
MyEclipse下XFire开发Webservice实例 -
hyl523:
好,明白了,多谢!
MyEclipse下XFire开发Webservice实例
流(IO管道):
1、inputStream OutputStream(读取单位:字节byte); Reader Writer(读取单位:字符char)
2、字符流:凡是以Reader、writer结尾的如fileReader,都为字符流(16位),可避免中文乱码
字节流:凡是以inputStream、outputStream结尾的都是字节流(8位),如:FileInputStream
3、FileInputStream in = new FileInputStream()表示建立管道
in.read()表示读取文件
以上为节点流下面为处理流
4、处理流(也分为字符流(如BufferedReader)和字节流(如BufferInputStream))
处理流是套接在其它流上的流
a.缓冲流:BufferWriter、BufferInputStream等
例如:BufferInputStream bin = new BufferInputStream(in)//建立套接在其它流上的流
b.转换流:将字节流转化为字符流;InputStreamReader、OutputStreamWriter等
例如:OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("c:/ex.txt",true));
BufferWriter bw = new BufferWriter(osw);
c.数据流:DataInputStream继承自InputStream,套接在InputStream型的节点流上,out的同in
例如:ByteArrayOutputStream baos = new ByteArrayOutputStream ();//内存中建立一个数组,然后建立一个流连接到其上
DataOutputStream dos = new DataOutputStream(baos);
dos.writeDouble(Math.random());
d.打印流:PrintWriter(字符)、 PrinterStream(字节);如System.out就是PrinterStream类型;此流不会抛异常;自动flush;
例如:System.setOut(new PrinterStream(new FileOutputStream("C:/log.dat")) );
System.out.println("daying...")//会打印到C:/log.dat这个文件,而不是控制台
e.object流:ObjectOutputStream、transient(transient int a =0;//表示序列化时不考虑此属性);将object转化为字节流为序列化serializable,继承自serializable的类表示可以序列化的类;
例如:ObjectOutputStreamoos = new ObjectOutputStream(new FileOutputStream());
oos.writeObject(obj);oos.flush();oos.close();
5、BufferWriter提供了newLine()写入一个行分隔符,write()可以写字符串;
BufferReader提供了readLine()赌气一行字符串(以\r或\n分隔)
6、ex:
//写入文件
// String tempFile = "WebRoot\\pages\\dbdata\\download\\ex.exp";
String tempFile = webPath + "\\webapps\\pages\\dbdata\\download\\ex.exp";
File file = new File(tempFile);
String fileName = "";
// String filePath = "WebRoot\\pages\\dbdata\\download\\" ;
String filePath = webPath + "\\webapps\\pages\\dbdata\\download\\" ;
FileUtil fu = new FileUtil();
System.out.println("文件路径(服务器):"+filePath);
if (sfileName==null ||sfileName.trim().length()<1){
fileName = UUID.randomUUID().toString() + ".exp";
try {
if (!file.getParentFile().exists())file.getParentFile().mkdirs();
String outFile = filePath + fileName;
OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(new File(outFile)),"UTF-8");
BufferedWriter bw =new BufferedWriter(write);
bw.write(" <tables> "+xmlfile.toString());
bw.close();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}else{
fileName = sfileName;
try {
OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(filePath + fileName,true),"UTF-8");
BufferedWriter bw =new BufferedWriter(write);
bw.write(xmlfile.toString());
bw.close();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
7、解决乱码
最近在做HTML静态生成,需要从硬盘上把模版文件的内容读出来。然后,替换相关标签写到指定的文件中。无论是读写,都遇到了中文乱码问题。试过多种方法,发现下面一种可以避免中文乱码。(无论读取还是写入一定要进行编码转换。)
1、JAVA读取文件,避免中文乱码。
/**
*读取文件内容
*
* @param filePathAndName
*String如 c:\\1.txt绝对路径
* @return boolean
*/
public static String readFile(String filePathAndName) {
String fileContent = "";
try {
File f = new File(filePathAndName);
if(f.isFile()&&f.exists()){
InputStreamReader read = new InputStreamReader(newFileInputStream(f),"UTF-8");
BufferedReader reader=new BufferedReader(read);
String line;
while ((line = reader.readLine()) != null) {
fileContent += line;
}
read.close();
}
} catch (Exception e) {
System.out.println("读取文件内容操作出错");
e.printStackTrace();
}
return fileContent;
}
2、JAVA写入文件,避免中文乱码。
public static void writeFile(String filePathAndName,String fileContent) {
try {
File f = new File(filePathAndName);
if (!f.exists()) {
f.createNewFile();
}
OutputStreamWriter write = new OutputStreamWriter(newFileOutputStream(f),"UTF-8");
BufferedWriter writer=new BufferedWriter(write);
//PrintWriter writer = new PrintWriter(new BufferedWriter(newFileWriter(filePathAndName)));
//PrintWriter writer = new PrintWriter(newFileWriter(filePathAndName));
writer.write(fileContent);
writer.close();
} catch (Exception e) {
System.out.println("写文件内容操作出错");
e.printStackTrace();
}
}
发表评论
-
JDK使用InvocationHandler和Proxy实现动态代理
2013-06-11 23:54 980----------------------- ... -
java 内存溢出
2013-06-03 16:25 807java虚拟机的内存基本概念: PermGen spac ... -
java Base64encoder 加密解密
2012-11-18 00:11 2036代码: package Encryption; ... -
java NIO (转)
2012-11-06 16:11 7791. 基本 概念 IO 是主存和外部设备 ( 硬盘、终 ... -
Socket + json + tomcat
2012-10-24 15:09 1322本文主要实现不同tomcat服务器之间通过socket通信,数 ... -
java 日志 log4j和slf4j
2012-10-22 23:01 926log4j简易入门 package ... -
java JDBC
2012-10-09 11:34 796分为6个步骤 1. load the driver (1)Cl ... -
java 文件上传下载
2012-09-09 12:05 955文件下载 import java.io.Buff ... -
java JExcelUtil
2012-09-09 11:54 4import java.io.File; imp ... -
java 日记
2012-09-06 23:14 5641、调用本地动态库(.dll),使用技术 jna 2、 ... -
java 线程
2012-09-02 00:06 681线程:线程并行;方 ... -
java的基本数据类型
2012-08-16 16:03 7java的8种基本数据类型包括:byte、short、 ... -
java Junit
2012-08-11 00:19 808什么是单元测试 ... -
Java Socket编程
2012-08-08 21:13 618第一步 充分理解Socket ... -
java 反射 获得属性值
2012-05-02 22:55 2858通过java反射获得属性值 J ... -
JAVA IO 乱码
2012-05-02 22:59 42012-04-18 20:38 最近在做HTML静态生 ... -
Java 开发代理服务器
2012-08-07 11:01 713代理服务器的应用非 ... -
java excel
2012-08-07 21:27 1074JXL 读写以及修改EXCEL文件 首先引用网上的文 ...
相关推荐
Java IO应届生培训讲义是一份面向刚毕业的大学生进行Java IO相关知识的培训资料,它涵盖了Java IO的基础知识、不同的IO模型以及Java中的BIO、NIO和AIO高级IO类库。下面详细解释这些知识点: 1. 用户空间和内核空间 ...
Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的重要部分,涉及文件、网络、内存等数据传输。本文将深入探讨Java IO的基本概念、分类、选择流的策略以及常用的流类型。 首先,File类是Java IO的...
java IO教程,java IO教程,java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程,java IO教程,java IO教程,java IO...
Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了一整套类库,使得开发者能够有效地读取和写入数据到不同的源和目标,如文件、网络、内存缓冲区等。Java IO体系结构设计得...
Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的基础框架,它提供了丰富的类库,使得程序能够与各种设备、文件、网络进行数据交互。然而,传统的IO模型在处理大量并发连接时表现出效率较低的问题,...
《Java IO.chm》是一个关于Java输入/输出(IO)技术的压缩文件,其中包含了丰富的资料,适合开发者深入理解和学习Java IO系统。这篇详细的总结将围绕Java IO体系结构、核心类、流的概念、缓冲区、转换流、字符集、...
Java IO 详解 Java IO(Input/Output)是 Java 语言中用于处理输入输出操作的类库,提供了大量的类和方法来实现文件、网络、字节流等方面的输入输出操作。下面对 Java IO 中的重要知识点进行详细说明。 一、File ...
Java IO处理类是Java平台中用于输入输出操作的核心部分,它允许程序与各种类型的输入源(如文件、网络连接)以及输出目标(如显示器、打印机)进行交互。本篇文章将全面解析Java IO处理类,包括基本概念、常用类库、...
Java IO编程是Java平台中处理输入输出操作的重要组成部分,它提供了丰富的类库,使得开发者能够高效地进行数据的读取、写入、流的管理和转换。在这个集合中,我们主要探讨的是Java IO在文件读写方面的实践应用。 一...
Java IO流技术是Java平台中用于处理输入输出的重要机制,其核心在于数据的传输,从数据源到程序或从程序到目的地。在Java中,流分为两大类:输入流(InputStream、Reader)和输出流(OutputStream、Writer)。输入流...
在“JavaIODemo”这个示例中,可能会包含以上提到的一些或全部Java IO操作的代码实例,通过这些实例,我们可以学习如何在实际项目中应用Java IO API。实践是掌握Java IO的最佳方式,通过对这些示例的分析和运行,...
Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了丰富的类库,允许程序员在程序之间传输数据,包括从文件、网络、内存缓冲区到其他程序或系统组件。Java IO API是Java平台的...
JavaIO流详解归纳 Java 的核心库 java.io 提供了全面的 IO 接口,包括文件读写、标准设备输出等。Java 中 IO 是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。在项目开发中,IO 是非常...
Java IO操作是Java编程中的重要组成部分,主要用于处理输入和输出数据。在Java中,IO操作涉及到文件、字节流、字符流以及管道流等多个概念。下面将详细解释这些知识点。 首先,我们来看“文件类”。在Java中,`java...
Java IO 与 装饰模式 在Java编程中,输入输出(IO)处理是程序设计中的重要组成部分,用于读取、写入和处理数据。Java IO库提供了一整套类来支持各种类型的输入输出操作,包括文件、网络、内存等。而装饰模式是一种...
2、常用21个IO流:FileWriter、FileReader、...3、JAVA IO流经典代码示例,示例从易到难。代码功能涉及字节、字符、字符串、文本文件、图片、音频、视频。演示错误用法和经典用法。 4、代码的结构可查看README文件。
Java IO流是Java平台中的重要组成部分,用于处理输入和输出操作。它允许程序与外部设备如硬盘、网络、内存等进行数据传输。IO流的概念基于流(Stream)模型,数据以字节或字符序列的形式流动。Java IO库提供了丰富的...
Java IO流是Java编程语言中处理输入输出操作的重要部分,尤其在数据传输、文件读写等方面发挥着核心作用。本文将深入探讨Java IO流的基本概念、类型以及它们在实际开发中的应用。 首先,理解IO流的基本概念至关重要...
Java IO(Input/Output)是Java平台中处理输入与输出数据的核心部分,它提供了丰富的类库,使得开发者能够高效地进行文件、网络、内存以及其他I/O流的操作。本篇文章将全面解析Java IO工具类,帮助你理解并掌握其在...