java—2

此页面是否是列表页或首页?未找到合适正文内容。

java—2

标签:writerastcodeinpuutf-8modifiedntsclass多个

今天打算过一遍java的io,主要是关注文件方面,当然还有什么zip之类的。

io顾名思义就是输入和输出,根据操作的类型分为输入流和输出流,感觉流是一种通道,它给各种数据呀,文件呀提供通道。本身还是可以理解的。在java中,所有的io的操作基本放在java.io中,所有的输入流都是抽象类InputStream和Reader的子类,前者是字节输入流,后者则是字符输入流。与此对应的还有OutputStream和Writer抽象类。字节流读取的时候,读到一个字节就返回一个字节; 字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8码表中是3个字节)时。先去查指定的编码表,将查到的字符返回。字节流可以处理所有类型数据,而字符流只能处理字符数据。只要是处理纯文本数据,就要优先考虑使用字符流,除此之外都用字节流。

File类是唯一代表磁盘文件本身的对象。通过调用File类中的方法,实现创建(createNewFile()),删除(delete()),重命名文件等操作。同时此类提供了许多方法用来获取一些文件本身的信息,如判断文件是否存在(exits()),获取文件长度(length()),最后修改时间(lastModified())。

当需要将数据永久保存时,就需要使用文件输入输出流与指定文件建立连接。FileInputStream和FileOutputStream都用来操作磁盘文件,前面说了这两个类都是对字节的操作,都只提供了对字节和字节数组的读取方法,由于汉字在文件中是占两个字节的,那么如果用这两个类读取汉字文本时,极大可能性会出现乱码现象。所以对于这种现象,我们应当采用FileReader和FileWriter类。FileReader流顺序地读取文件,只要不关闭流,每次调用read就顺序地读取源中其余的内容,直到被close。

虽然在程序结束时自动关闭所有打开的流,但是在使用完流后,主动close仍然是一个好习惯,一个被打开的流可能会占尽系统资源,如果没有将打开的流关闭,当另一个程序试图打开另一个流时,可能会得不到需要的资源。

public class FileTest{
public static void main(String[] args){
File file=new File(\”word.txt\”);
try{
FileOutputStream a=new FileOutputStream(file);
byte buy[]=\”你好java\”.getBytes();
a.write(buy);
a.close();
}catch(Excetion e){
e.printStackTrace();
}
try{
FileInputStream b=new FileInputStream(file);
byte by[]=new byte[1024];
int h=b.read(by);
System.out.println(new String(by,0,h));
b.close();
}catch(Excetion e){
e.printStackTrace();
}
}
}

File f=new File(\”d:\\\\hah.txt\”);
if(!f.exists()){
try {
f.createNewFile();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}else

作者: 电脑大师

为您推荐

返回顶部