file的使用

  1. 文件流的使用

    • FileInpunStream  FileOutOputStream   ----------字符流
    • FileReader Filewriter --------字节流  

如下代码读取文件的内容并将其输入显示器上

package com.nanjing.file;

import java.io.FileReader;

public class TestFileReader {

    /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
FileReader fr=null;
try {
fr=new FileReader("d:/2.txt");
int cnt=0;
int ch;
while(-1!=(ch=fr.read())){
System.out.print((char)ch);
++cnt;
}
System.out.printf("总共从1.txt中读取了%d个字节",cnt);
} catch (Exception e) {
throw new RuntimeException(e);
}
} }
package com.nanjing.file;
import java.io.FileInputStream;
import java.io.InputStream;
public class TestFileInputStreamr { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
InputStream fr=null;
try {
fr=new FileInputStream("d:/2.txt");
int cnt=0;
int ch;
while(-1!=(ch=fr.read())){
System.out.print((char)ch);
++cnt;
}
System.out.printf("总共从1.txt中读取了%d个字节",cnt);
} catch (Exception e) {
throw new RuntimeException(e);
}
} }
  • InputStream 和 OutputStream

1. FileInpunStream是InputStream的子类,因为InputStream是一个抽象类。对是一个抽象类,我们要使用他的子类来new 对象,当然我们也可以这样

Reader fr=null;父类的引用指向子类的对象。

2. FileInpuntStream将文件按字节读取,所以即使有汉字会乱码。

3. public FileInpunStream(String FileName)一个常用函数,就是连接文件的函数。

4. FileOutputStream同理

5. / \\ 在字符串里面使用

  • Reader 和 Writer

1.FileReader是Reader的子类与上面基本相似

2.FileReader是将文件按字符为单位所以不会乱码。

3.public FileReader(String FileName)

4.Writer类似

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

上面二者的区别???

InputStream 和 OutputStream VS Reader 和 Writer

  1. InputStream 和 OutputStream 可以完成所以格式文件的copy
  2. Reader 和 Writer只能完成文本文件的copy
  3. 汉字乱码问题
import java.io.*;

public class TestFileInputStreamOutputStreamCopy
{
public static void main(String[] args)
{
FileInputStream fi = null;
FileOutputStream fo = null; try
{
fi = new FileInputStream("E:\\综艺\\歌曲\\1.mp3");
fo = new FileOutputStream("d:/share/Output.txt"); //可以用QQ音乐打开,成功了
int ch; while (-1 != (ch=fi.read()))
{
fo.write(ch);
}
}
catch (FileNotFoundException e)
{
System.out.println("文件没有找到!");
System.exit(-1);
}
catch(IOException e)
{
System.out.println("文件读写错误!");
System.exit(-1);
}
finally
{
try
{
if (null != fi)
{
fi.close();
fi = null;
}
if (null != fo)
{
fo.close();
fo = null;
}
}
catch (Exception e)
{
e.printStackTrace();
System.exit(-1);
}
} System.out.println("文件复制成功!");
}
}
import java.io.*; 

public class TestFileReaderWriterCopy
{
public static void main(String[] args)
{
FileReader fi = null;
FileWriter fo = null;
try
{
fi = new FileReader("E:\\综艺\\歌曲\\1.mp3");
fo = new FileWriter("d:/share/Output.txt"); //Output.txt用QQ音乐打开失败! 本程序证明了FileWriter 和 FileReader 无法完成视频文件的赋值,实际上FileWriter 和 FileReader 只能完成文本文件的复制
int ch;
while (-1 != (ch=fi.read()))
{
fo.write(ch);
}
}
catch (FileNotFoundException e)
{
System.out.println("文件没有找到!");
System.exit(-1);
}
catch(IOException e)
{
System.out.println("文件读写错误!");
System.exit(-1);
}
finally
{
try
{
if (null != fi)
{
fi.close();
fi = null;
}
if (null != fo)
{
fo.close();
fo = null;
}
}
catch (Exception e)
{
e.printStackTrace();
System.exit(-1);
}
}
System.out.println("文件复制成功!");
}
}

Io流的使用的更多相关文章

  1. Java基础之IO流

    很长时间都没有更新了,最近在补充JavaSE的一些细节部分 关于IO流的一些总结 首先要介绍的是File类,File类用于对文件和目录的一些操作 1.创建文件CreateNewFile() 2.对文件 ...

  2. Java中IO流,输入输出流概述与总结

    总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入 ...

  3. Java:IO流与文件基础

    Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...

  4. java IO流详解

    流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  5. IO流总结

    IO流的作用:用于设备和设备之间的数据传输. IO流的概念:流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象. IO流的分类:  按照操作数据的类型分为两种: 字节流和字符流.  按 ...

  6. IO流

    流的概念和作用 学习JavaIO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特 ...

  7. Java IO流学习总结

    Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  8. 揭开Java IO流中的flush()的神秘面纱

    大家在使用Java IO流中OutputStream.PrintWriter --时,会经常用到它的flush()方法. 与在网络硬件中缓存一样,流还可以在软件中得到缓存,即直接在Java代码中缓存. ...

  9. java IO流 之 其他流

    一.内存操作流(ByteArrayInputStream.ByteArrayOutputStream) (一).   public class ByteArrayInputStream extends ...

  10. java IO流 之 字符流

    字符是我们能读懂的一些文字和符号,但在计算机中存储的却是我们看不懂的byte 字节,那这就存在关于字符编码解码的问题.所以在学习Io流的字符流前我们先了解些关于编码问题. 一.字符集与字符编码 1.什 ...

随机推荐

  1. node.js初识12

    1.express框架属于后端的框架 cnpm install --save express --save的作用是将下载的保存在package.json中 你可以点击http://www.expres ...

  2. JavaScript 深入了解对象中的属性

    本篇主要介绍JS中对象的属性,包括:属性的分类.访问方式.检测属性.遍历属性以及属性特性等内容. 目录 1. 介绍:描述属性的命名方式.查找路径以及分类 2. 属性的访问方式:介绍'.'访问方式.'[ ...

  3. c#之如何转换文本文件编码格式为utf-8

    如代码: string content = File.ReadAllText(path, Encoding.Default); File.WriteAllText(path, content, Enc ...

  4. Unity shader学习之菲涅耳反射

    菲涅尔反射(Fresnel reflection),指光线照射物体表面时,一部分发生反射,一部分进入物体内部发生折射或散射,被反射的光和折射光之间存在一定的比率. 2个公式: 1. Schlick 菲 ...

  5. C语言阐述进程和线程的区别

    [cpp]view plain copy /* 每一个程序相当于一个进程,而一个进程之中可以有多个线程 */ #define _CRT_SECURE_NO_WARNINGS #include<s ...

  6. clientWidth,offsetWidth,scrollWidth区别

    <html> <head> <title>clientWidth,offsetWidth,scrollWidth区别</title> </head ...

  7. Python - 3. Input and Output

    from:http://interactivepython.org/courselib/static/pythonds/Introduction/InputandOutput.html Input a ...

  8. c++学习笔记(七)- lambda表达式 迭代器 算法

    关于lambda表达式: 刷题的时候遇到一句代码不懂: char ch = *it;auto it2 = find_if(it, b.end(), [ch](char x){ return x != ...

  9. ftp下载文件失败get: Access failed: 550 Failed to open file. (t1.log)

    get: Access failed: 550 Failed to open file. (t1.log) 原因是被SELinux安全访问控制策略限制了. 科普: SELinux(Security-E ...

  10. Linux基础命令---vim文本编辑

    vim vim是unix系统最通用的文本编辑器,它的功能可以说是非常强大了,它是vi的升级版.vim有三种工作模式:编辑模式.命令模式.末行模式,默认打开的时候进入命令模式. 此命令的适用范围:Red ...