- 浏览: 659474 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
HkEndless:
不好意思,请问这确定是回调机制吗。你的例子中只是将接口的实现类 ...
Spring CallBack回调机制介绍 -
hanmiao:
写的真乱啊,完全不知所云...
Java如何调用可执行文件和批处理命令 -
junia_1:
junia_1 写道 shock: ...
为什么要使用EJB -
junia_1:
shock:
为什么要使用EJB -
coollifer:
不错
SQL Server数据导入到Oracle中的方法
main 函数:
import
java.io.*;
import
java.util.Vector;
import
cn.com.test.byteio.ReadFromFile;
/*
*
拷贝文件1
的内容到文件2
中(readFileByByte()
),
文件可以是任何形式;
*
除了按字节读写外,其他都用TXT
文件测试,只测试读,输出到console
*/
public
class
Byte_test {
public
static
void
main(String[] args){
String filename =
"F:\\jiegou.png";
String filecopy =
"F:\\copy.png";
String filetxt =
"F:\\111.txt";
WriteToFile wtf =
new
WriteToFile();
wtf.WriteByByte(filename,
filecopy);
ReadFromFile.readFileByBytes(filetxt);
System.out.println("
****************************** ");
ReadFromFile.readFileByChars(filetxt);
System.out.println("
****************************** ");
ReadFromFile.readFileByLines(filetxt);
System.out.println(" ******************************
");
ReadFromFile.readFileByRandomAccess(filetxt);
}
}
ReadFromFile 类,实现读取文件:
package
cn.com.test.bytetest;
import
java.io.*;
public
class
ReadFromFile{
InputStream in =
null
;
public
ReadFromFile(String filename){
in =
this
.getClass().getResourceAsStream(filename);
}
/*
*
获取文件(读)的剩余可用长度AvailableByte(String filename)
* return int
* @param filename
*/
@SuppressWarnings("finally")
public
static
int
AvailableByte(String filename){
File file =
new
File(filename);
int
filelength = 0;
try
{
InputStream is =
new
FileInputStream(file);
filelength = is.available();
System.out.println("
文件长度:"+filelength);
}
catch
(IOException e) {
e.printStackTrace();
}
finally
{
return
filelength;
}
}
/*
*
按字节读取文件 ReadByByte(String filename)
*
一次可以读取多个字节多用于图片、视频等非文本文档
* @paramfilename
*/
public
void
readFileByByte(String filename){
try
{
File file =
new
File(filename);
InputStream in =
null
;
in =
new
FileInputStream(file);
int
count
= 0,verdict = 0;
count = ReadFromFile.AvailableByte(filename);
byte
[]
sbyte =
new
byte
[count];
while
((verdict
= in.read(sbyte)) != -1){
System.out.write(sbyte,0,count);
}
}
catch
(IOException e) {
e.printStackTrace();
}
finally
{
if
(in
!=
null
){
try
{
in.close();
}
catch
(IOException e1) {
}
}
}
System.out.println("*************");
}
/**
*
以字符为单位读取文件readFileByChars(String fileName)
,
*
常用于读文本,数字等类型的文件
*
@param
fileName
文件名
*/
public
static
void
readFileByChars(String fileName){
File file =
new
File(fileName);
Reader reader =
null
;
try
{
System.out.println("
以字符为单位读取文件内容,一次读一个字节:");
//
一次读一个字符
reader =
new
InputStreamReader(
new
FileInputStream(file));
int
tempchar;
while
((tempchar = reader.read()) != -1){
//
对于windows
下,rn
这两个字符在一起时,表示一个换行。
//
但如果这两个字符分开显示时,会换两次行。
//
因此,屏蔽掉r
,或者屏蔽n
。否则,将会多出很多空行。
if
(((
char
)tempchar) != 'r'){
System.out.print((
char
)tempchar);
}
}
reader.close();
}
catch
(Exception e) {
e.printStackTrace();
}
System.out.println("
");
try
{
System.out.println("
以字符为单位读取文件内容,一次读多个字节:");
//
一次读多个字符
char
[]
tempchars =
new
char
[30];
int
charread = 0;
reader =
new
InputStreamReader(
new
FileInputStream(fileName));
//
读入多个字符到字符数组中,charread
为一次读取字符数
while
((charread = reader.read(tempchars))!=-1){
//
同样屏蔽掉r
不显示
if
((charread == tempchars.length)&&(tempchars[tempchars.length-1] !=
'r')){
System.out.print(tempchars);
}
else
{
for
(
int
i=0; i<charread; i++){
if
(tempchars[i]
== 'r'){
continue
;
}
else
{
System.out.print(tempchars[i]);
}
}
}
}
}
catch
(Exception e1) {
e1.printStackTrace();
}
finally
{
if
(reader !=
null
){
try
{
reader.close();
}
catch
(IOException e1) {
}
}
System.out.println("
");
}
}
/**
*
以行为单位读取文件readFileByLines(String fileName)
,
*
常用于读面向行的格式化文件
*
@param
fileName
*/
public
static
void
readFileByLines(String fileName){
File file =
new
File(fileName);
BufferedReader reader =
null
;
try
{
System.out.println("
以行为单位读取文件内容,一次读一整行:");
reader =
new
BufferedReader(
new
FileReader(file));
String tempString =
null
;
int
line
= 1;
//
一次读入一行,直到读入null
为文件结束
while
((tempString = reader.readLine()) !=
null
){
//
显示行号
System.out.println("line
" + line + ": " + tempString);
line++;
}
reader.close();
}
catch
(IOException e) {
e.printStackTrace();
}
finally
{
if
(reader !=
null
){
try
{
reader.close();
}
catch
(IOException e1) {
}
}
System.out.println("
");
}
}
/**
*
随机读取文件内容readFileByRandomAccess
*
@param
fileName
*/
public
static
void
readFileByRandomAccess(String fileName){
RandomAccessFile randomFile =
null
;
try
{
System.out.println("
随机读取一段文件内容:");
//
打开一个随机访问文件流,按只读方式
randomFile =
new
RandomAccessFile(fileName, "r");
//
文件长度,字节数
long
fileLength = randomFile.length();
//
读文件的起始位置
int
beginIndex = (fileLength > 4) ? 4 : 0;
//
将读文件的开始位置移到beginIndex
位置。
randomFile.seek(beginIndex);
byte
[]
bytes =
new
byte
[10];
int
byteread = 0;
//
一次读10
个字节,如果文件内容不足10
个字节,则读剩下的字节。
//
将一次读取的字节数赋给byteread
while
((byteread = randomFile.read(bytes)) != -1){
System.out.write(bytes, 0, byteread);
}
}
catch
(IOException e){
e.printStackTrace();
}
finally
{
if
(randomFile !=
null
){
try
{
randomFile.close();
}
catch
(IOException e1) {
}
}
}
}
}
WriteToFile 类 ,实现拷贝功能:
package
cn.com.test.bytetest;
import
java.io.*;
public
class
WriteToFile {
public
OutputStream os =
null
;
public
WriteToFile(){
}
public
void
WriteByByte(String filename1,String filename2){
File filei =
new
File(filename2);
File fileo =
new
File(filename1);
int
ver =
0;
byte
[]
sbyte =
new
byte
[1000];
try
{
FileInputStream fis =
new
FileInputStream(fileo);
FileOutputStream fos =
new
FileOutputStream(filei);
while
((ver
= fis.read(sbyte)) != -1){
fos.write(sbyte, 0, ver);
System.out.println("
传输一段,长度1000");
}
if
(fis!=
null
)fis.close();
if
(fos!=
null
)fos.close();
}
catch
(IOException
e){
e.printStackTrace();
}
}
}
由于多种方式写文件是重复性工作,没有涉及;
API
发表评论
-
hibernate Restrictions用法 MatchMode.ANYWHERE
2012-07-14 15:50 3971方法 说明 Res ... -
URLClassLoader
2012-05-27 19:45 999This example shows how a serv ... -
MyClassLoader 自定义类加载器
2012-05-27 19:38 1525package demo; import java. ... -
Deal with big-endian and little-endian order
2011-12-25 19:17 1120Java virtual machine always use ... -
修改eclipse的背景色
2011-11-12 19:23 1115eclipse 操作界面默认颜色为白色。对于我们长期 ... -
多线程管道流输入输出模式
2011-11-07 07:23 1092import java.io.* ; class Send ... -
Java计数单字节双字节字符个数的例子
2011-10-26 14:29 1294/* 计数单双字符的个数并存储在Map对象中 ... -
常用内存数据库3
2011-10-24 00:24 15204.1.2 哪些场合适合使用其他的关系型数据库管 ... -
java字节码规则
2011-09-05 13:56 1254栈和局部变量操作 将常量压入栈的指令 aconst_nul ... -
Tomcat中限制ip访问
2011-08-23 21:40 1273Tomcat中限制ip访问是非常简单的,只需要编辑server ... -
一个Java程序员应该掌握的10项技能
2011-08-22 10:27 6211、语法:必须比较熟 ... -
2011 年 8 月 Java 开发人员新闻快讯
2011-08-18 18:59 838Java SE 7 发布了! 经过世界各地 Ja ... -
BlockingQueue
2011-08-13 09:59 719import java.util.concurrent.Arr ... -
eclipse中java项目转换为web项目
2011-07-27 18:29 899经常在eclipse中导入web项目时,出现转不了项目类型 ... -
Oracle官方Weblogic插件安装
2011-07-20 22:00 2882Installing Oracle Enterprise Pa ... -
Java集合HashSet-ArrayList-HashMap的线程同步控制方法和区别
2011-06-21 17:44 2322C ollections类中提供了多 ... -
关于java的集合类,以及HashMap中Set的用法
2011-06-21 17:35 1807import java.util.*; public c ... -
Java的动态代理实例
2011-06-16 03:44 1058首先写一个接口: package net.test.dyna ... -
Java如何调用可执行文件和批处理命令
2011-06-07 00:58 2351Java是种跨平台的语言,我们经常碰到需要通过Java调用wi ... -
jsp实现图片验证码的方法
2011-06-07 00:57 1393调用方法 <img src=&quo ...
相关推荐
在Java中,虽然没有内置的Ini文件处理库,但我们可以借助第三方库如JIniFile或者Apache Commons Configuration来实现读写Ini文件的功能。 首先,让我们了解Ini文件的基本结构。Ini文件由多个节(Section)组成,每...
### Java读写XML文件知识点详解 #### 一、概述 在Java编程中,对XML文件进行读取与写入是一项非常常见的任务。XML(可扩展标记语言)是一种用于标记数据的语言,非常适合用来存储和传输数据。Java提供了多种API来...
Modbus协议支持多种通信方式,包括串行通信、以太网通信和无线通信等。 Java实现Modbus读写 Java实现Modbus读写主要涉及到以下几个步骤: 1. 导入Modbus库 在Java中实现Modbus读写需要导入Modbus库,例如...
在Java中读写Excel文件是一项常见的任务,尤其是在数据处理、报表生成或数据分析等场景下。Apache POI是一个广泛使用的开源库,它允许开发者使用Java语言来处理Microsoft Office格式的文件,包括Excel(XLS和XLSX)...
### Java读写XML文件的方法详解 #### 一、概述 在Java编程中,XML(Extensible Markup Language,可扩展标记语言)是一种广泛使用的数据交换格式。由于其良好的跨平台特性和自描述性,使得XML成为了许多应用程序...
随着Java的发展,不同版本提供了多种方式来处理文件读写,这使得开发者可以根据实际需求选择最合适的方法。本文将重点探讨Java在不同版本中所提供的文件读写方式,并对其进行对比分析。 #### 一、JDK 1.0 中的文件...
### HDF5 文件结构以及基于 Java 的读写 #### HDF 概述 HDF(Hierarchical Data Format)是一种自我描述、多对象的文件格式,专为高效地存储和分发科学数据而设计。它由美国国家超级计算应用中心(NCSA)开发,...
本文将深入探讨Java中各种文件读写的方式,以及如何在读写Word文档时解决可能出现的乱码问题。 首先,Java提供了多种文件读写的API,包括`java.io`包下的`FileReader`、`FileWriter`、`BufferedReader`、`...
首先,Java提供了多种方式来读写文件。最基础的是使用`java.io`包中的`File`类来创建、读取和写入文件。`File`对象可以表示文件或目录路径,并提供了诸如是否存在、大小、修改时间等属性的访问方法。例如,我们可以...
Java 读写文件避免中文乱码 Java 语言在读写文件时,经常会 gặp到中文乱码的问题。这是因为 Java 默认使用的字符编码是 ISO-8859-1,而中文字符在这个编码中无法正确地表示。为了避免中文乱码,需要使用正确的...
- 在Java中,通常使用Unidata的`ucar`库来处理NetCDF文件,其中`ucar.nc2`包提供了NetCDF文件的读写API。 - `NetcdfFile`类是主要的接口,用于打开和访问NetCDF文件。可以通过`NetcdfFile.open()`方法提供文件路径...
总结来说,Java提供了多种方式来读取文件,选择哪种方法取决于文件类型和具体需求。字节流适合处理二进制数据,而字符流则更适合处理文本内容。在处理大量数据时,使用缓冲和流控制可以提高效率。在JavaScript的Node...
本文将详细介绍Java中多种读取文件内容的方法,以及如何追加文件内容。 首先,我们来看读取文件内容的方式: 1. **按字节读取文件内容**: 这种方法适用于读取二进制文件,如图片、音频或视频文件。通过`...
这些类提供了多种方法来读写文件,如read()、write()、close()等。 * 读取文件:通过FileInputStream类的read()方法可以读取文件中的字节,并将其存储在一个数组中。 * 写入文件:通过FileOutputStream类的write()...
`dbf-jdbc-wisecoders`是一个Java库,它提供了对DBF文件的读写功能,使得开发者能够通过Java语言方便地操作这些文件。 这个工具包的主要特点和功能包括: 1. **JDBC接口**:`dbf-jdbc-wisecoders`通过提供一个类似...
Java提供了多种读写XML文件的方法,包括SAX、DOM、StAX以及JAXB等。本文将基于提供的文件信息,深入探讨如何利用Java进行XML文件的读取与写入,重点介绍DOM(Document Object Model)方式的操作。 #### DOM解析XML...
它支持多种版本的Microsoft Project文件,包括.MPP和.MPT格式。在描述中提到的是`mpxj`的3.1版本,这是一个稳定且功能丰富的版本,能够帮助开发者轻松地处理项目数据。 使用`mpxj`,我们可以执行以下关键操作: 1....