节点流类型

例1:

import java.io.*;
public class TestFileInputStream{
public static void main(String args[]){
int b = 0 ;
FileInputStream in = null ;
try{
in = new FileInputStream("TestFileInputStream.java");
}catch(FileNotFoundException e){
System.out.println("找不到文件");
System.exit(-1);//非正常退出
}
try{
long num = 0;
while ((b=in.read()) != -1){
System.out.print((char)b);
num++;
}
in.close();
System.out.println();
System.out.println("共读取了"+num+"个字节");
}catch(IOException e){
System.out.println("文件读取错误");
System.exit(-1);
}
}
}

注意:输出中文的部分显示为“?”。解决方法:用字符流。

例2:

import java.io.*;
public class TestFileOutputStream{
public static void main(String args[]){
int b = 0 ;
FileInputStream in = null ;
FileOutputStream out = null ;
try{
in = new FileInputStream("TestFile.java");
out = new FileOutputStream("d:/TestFile.java");
while((b=in.read()) != -1){
out.write(b);
}
in.close();
out.close();
}catch(FileNotFoundException e){
System.out.println("找不到指定文件");
System.exit(-1);
}catch(IOException e){
System.out.println("文件复制错误");
System.exit(-1);
}
System.out.println("文件已复制");
}
}

例3

import java.io.*;
public class TestFileReader{
public static void main(String args[]){
int c = 0 ;
FileReader fr = null ;
try{
fr = new FileReader("TestFile.java");
while((c = fr.read()) != -1){
System.out.print((char)c);
}
fr.close();
}catch(FileNotFoundException e){
System.out.println("找不到指定文件");
}catch(IOException e){
System.out.println("文件读取错误");
}
}
}

输出中文可以打印出来

例4:char 2个字节 最大65535.系统只能自动新建文件,但不能自动新建目录

import java.io.*;
public class TestFileWriter{
public static void main(String args[]){
FileWriter fw = null ;
try{
fw = new FileWriter("TestFile.java");
for(int c=0;c<=50000;c++){
fw.write(c);
}
fw.close();
}catch(IOException e){
e.printStackTrace();
System.out.println("文件写入错误");
System.exit(-1);
}
}
}

例5:复制文件的练习题 使用FileReader FileWriter

import java.io.*;
public class TestCopyByMyself{
public static void main(String args[]){
FileReader fr = null ;
FileWriter fw = null ;
int c = 0;
try{
fr = new FileReader("TestCopyByMyself.java");
fw = new FileWriter("TestFile.java");//文件不存在的话会自动生成,但目录如果不存在不可以自动生成
while((c=fr.read()) != -1){
fw.write(c);
}
fr.close();
fw.close();
}catch(FileNotFoundException e){
System.out.println("找不到文件");
System.exit(-1);//非正常退出
}catch(IOException e){
System.out.println("文件复制错误");
System.exit(-1);
}
System.out.println("文件已复制");
}
}

JAVA笔记24-IO流(2)-节点流举例的更多相关文章

  1. IO流之节点流(字节流)

    节点流可以分为:字节节点流和字符节点流 数据源直接到程序的成为节点流(低级流) 字节流 输入流----InputStream InputStream 是输入流的抽象父类,若创建对象,需new它的子类 ...

  2. java:装饰者模式,节点流和处理流

    接口: interface Worker { public void dowork(); } 清洁工:被装饰者,节点流 class Clean implements Worker { public v ...

  3. io流之节点流inputstream、outputstream、reader、writer

    例子程序:读取工作空间下 package io; import java.io.*; public class TestFileInputStream { public static void mai ...

  4. IO流之节点流(字符流)和数据流关闭

    ​输入流----Reader 1 public class Reader { 2 public static void main(String[] args) throws Exception { 3 ...

  5. JAVA笔记12__字节、字符缓冲流/打印流/对象流/

    /** * !!:以后写流的时候一定要加入缓冲!! * 对文件或其它目标频繁的读写操作,效率低,性能差. * 缓冲流:好处是能更高效地读写信息,原理是将数据先缓冲起来,然后一起写入或读取出来. * * ...

  6. java io 节点流和处理流

    JAVA IO操作总结:节点流和处理流 JAVA IO操作总结--节点流和处理流  按照流是否直接与特定的地方(如磁盘.内存.设备等)相连,分为节点流和处理流两类. 节点流:可以从或向一个特定的地方( ...

  7. JAVA里面的IO流(一)分类2(节点流和处理流及构造方法概要)

    IO流根据处理对象的不同分为节点流和处理流. 直接对文件进行处理的流为节点流: 对流进行包装从而实现对文件的优化处理的流为处理流. 节点流类型: 可以看出,节点流主要分这几大类: 文件流 文件流构造方 ...

  8. Java基础学习总结(13)——流IO

    一.JAVA流式输入/输出原理 流是用来读写数据的,java有一个类叫File,它封装的是文件的文件名,只是内存里面的一个对象,真正的文件是在硬盘上的一块空间,在这个文件里面存放着各种各样的数据,我们 ...

  9. Java自学第10期——File类与IO流(输入输出流、处理流、转换流、缓冲流、Properties集合、打印流)

    1.IO简介 IO(输入输出)通过java.io包下的类和接口来支持,包下包括输入.输出两种IO流,每种输入输出流又可分为字符流和字节流两大类. 2.File类 File类是io包下与平台无关的文件和 ...

  10. JAVA里面的IO流(一)分类1(字节/字符和输入/输出)

      java.io包中定义了多个流类型(流或抽象类)来实现输入/输出功能:可以从不同的角度对其进行分类: 按数据流的方向不同可以分为输入流和输出流 从文件读数据为输入流:往文件写数据为输出流 按处理数 ...

随机推荐

  1. Flutter异步Future

    一.认识Future 1.创建Future void testFuture(){ Future future = new Future(() => null); future.then((_){ ...

  2. python学习之那些由print引起的困惑

    该文索所起之因:在练习列表的操作时,要输出一波操作后的列表,但是一直让本人耿耿于怀的时下边的这个现象: 红色框框里是字符串,黄色框框里是列表,同样是只对一个元素进行的操作,为啥输出时字符串是作为一个整 ...

  3. SpringBoot常用注解有哪些?

    @Service: 注解在类上,表示这是一个业务层bean@Controller: 注解在类上,表示这是一个控制层bean@Repository: 注解在类上,表示这是一个数据访问层bean@Comp ...

  4. get、set快捷键那码事儿

    今天发现一个省时间的方法.get一下,哈哈 在快捷get/set.或其他那个页面上的方法时,只需Shift+Alt+s 然后,选择哪个方法,就按该方法字母下有横线的那个字母(只按单个字母就行) 在ge ...

  5. IDEA 双击只选择了一个变量的某部分单词

    1,很多抄袭文章说  在keymap 里搜索 select Word at caret , 鄙视手动抄袭和编写爬虫来 作恶的开发者. 2,自己试了,File菜单 ---->  settings- ...

  6. Linux单元测试题一

    一. 试验操作题目: 开启Linux操作系统,要求以root用户登录,然后完成下面的操作: 1.查看目前哪些用户登陆到系统上 [root@baidu home]# w 12:41:44 up 45 m ...

  7. mysql substr方法

    mysql中的substr()函数 mysql中的substr()函数和hibernate的substr()参数都一样,就是含义有所不同. 用法: substr(string string,num s ...

  8. adb 设置安卓连接wifi

    一. 修改wpa_supplicant.conf文件 1.1. 获得root权限 adb root 1.2. 将wpa_supplicant.conf拷贝到你的电脑 adb pull /data/mi ...

  9. eclipse 逆向生成hbm配置文件及pojo

    1.eclipse配置hibernate环境 由于在公司中不能在线安装jboss Tools,只能简单介绍手动安装 在jboss官网下载对应自己eclipse的压缩包. 在eclipse 中选择Hel ...

  10. Solution for automatic update of Chinese word segmentation full-text index in NEO4J

    Solution for automatic update of Chinese word segmentation full-text index in NEO4J 1. Sample data 2 ...