先讲编码:
////读取
FileInputStream fr = new FileInputStream(path);
InputStreamReader is = new InputStreamReader(fr,"UTF-8");
BufferedReader br=new BufferedReader(is);
//// 写入
FileOutputStream stream;// provides file access
OutputStreamWriter writer;// writes to the file
try {
stream = new FileOutputStream(filename);
writer = new OutputStreamWriter(stream,"UTF-8");
}catch(Exception e){
}
文件读写:
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)关闭此文件。
摘自:http://huahun.javaeye.com/blog/240044
相关推荐
在Java中,`java.nio.charset.Charset`类用于表示字符编码,但默认情况下,Java文件读取操作通常假设文件为UTF-8编码。对于其他编码,我们需要借助第三方库如`jcconf`或`ICU4J`来检测编码。 ```java import ...
标题"java 文件编码转换"指的是使用Java来解决文件编码问题,而描述中提到的"提供一个jar包和一个java文件"则暗示了我们可以通过这两个文件实现这个功能。 首先,`chardet.jar`可能是一个字符集检测库,用于自动...
选择合适的编码方式至关重要,因为它直接影响到文件内容的正确读取和显示。例如,当一个UTF-8编码的文件误用GBK打开时,可能会出现乱码。 在工作中,我们经常遇到处理不同编码格式的问题,尤其是在处理多语言网站或...
3. **BOM(Byte Order Mark)**:即字节顺序标记,用来标记文本文件编码方式的一种特殊字符。例如UTF-8编码的BOM为`EF BB BF`。 #### 判断文件编码的基本思路 判断文件编码的基本方法是读取文件的前几个字节,根据...
本文将深入探讨“Java文件的编码转换”这一主题,以及如何利用Java来解决由于不同编码格式引起的兼容性问题。 首先,我们需要理解什么是文件编码。文件编码是指在计算机中存储和处理文本的方式,常见的有GBK和UTF-8...
本工程用于研究如何使用Java代码获取文件、文件流或字符串的编码方式 本工程编码方式:UTF-8 开发工具:MyEclipse 参考博客:http://blog.csdn.net/gaohuanjie/article/details/43735891
不同的编码方式决定了字符集的范围和字符的二进制表示。GBK是中国大陆广泛使用的编码,包含了大部分中文字符;而UTF-8是一种国际通用的编码,能够表示世界上几乎所有的字符。 在Java中,进行文件编码转换主要涉及`...
在Java编程语言中,判断文件或字符串的编码方式是一个常见的需求。这主要涉及到字符集的概念,如ASCII、ISO-8859-1、UTF-8等,它们用于将二进制数据转换为人类可读的字符。在Java中,有多种方法可以用来识别或检测一...
3. **BufferedReader和BufferedWriter**:在Java中,`java.io.BufferedReader`和`java.io.BufferedWriter`类用于读写文件。这两个类允许我们指定文件的字符编码,通过构造函数传入`Charset`对象。 4. **文件读写...
这个问题通常与字符编码设置有关,特别是Java的默认字符集和CSV文件本身的编码不一致时。 首先,我们需要理解Java中的字符编码。Java使用`Charset`类来处理字符编码,最常见的编码格式有UTF-8、GBK等。如果CSV文件...
Java 读写文件避免中文乱码 Java 语言在读写文件时,经常会 gặp到中文乱码的问题。这是因为 Java 默认使用的...为了避免中文乱码,需要在读取和写入文件时,使用正确的编码方式,并选择合适的编码方式进行编码转换。
Java提供多种方式来读取txt文件,主要使用以下几种API: 1. **BufferedReader**:这是最常用的读取文本文件的方法,它以缓冲的方式逐行读取文件内容。BufferedReader通常与InputStreamReader结合使用,后者允许我们...
根据给定的文件信息,...综上所述,Java提供了丰富的API来处理文件读取,开发者可以根据具体需求选择合适的方法。掌握这些技术对于任何从事软件开发的人来说都是至关重要的,尤其是在处理大量数据和复杂文件格式时。
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
在Java编程语言中,文件编码转换和文件操作是常见的任务,尤其在处理不同地区和语言的文本时。这里我们将深入探讨这两个主题。 1. **文件编码转换** - **Unicode转GB2312**: Unicode是一种国际标准字符集,包含了...
总之,Java中的TLV编码和解码涉及到数据结构的表示和转换,熟悉这种编码方式对于理解和处理通信协议、序列化数据等方面都有很大帮助。结合`ber-tlv`资源,开发者可以快速地在Java项目中实现自己的TLV处理功能。
当我们在编写或读取Java源代码(.java文件)时,如果不正确地设置或识别文件的编码方式,就可能导致乱码的出现。例如,一个使用GBK编码的Java文件在UTF-8环境下打开,由于解码方式不匹配,原本的中文字符就会显示为...
在Java编程环境中,正确处理文件的真实格式和编码格式至关重要,特别是在进行数据解析和文本处理时。这个主题主要涉及两个核心工具类:`VerifyFileType.java` 和 `VerifyFileEncoder.java`,它们分别用于验证文件的...
在Java编程中,正确识别和处理文件的编码方式至关重要,特别是在处理不同系统间的数据交换或者解析非ASCII字符的文本文件时。本篇文章将详细介绍两种常用的方法来检测Java程序中的文件编码:一是使用`cpdetector`第...
在Java编程语言中,获取文件编码是一个常见的任务,特别是在处理文本文件时,了解正确的编码格式至关重要,因为不同的编码方式会影响字符的表示和解析。本文将深入探讨如何在Java中识别和处理不同类型的文本编码,如...