java输入输出流实例代码

java输入输出流实例代码1.编写一个程序,读取源代码文件的内容并在控制台输出。如果源文件不存在,则显示相应的错误信息。packagesrc;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.IOException;publicclasstest01{

大家好,又见面了,我是你们的朋友全栈君。

1.编写一个程序,读取源代码文件的内容并在控制台输出。如果源文件不存在,则显示相应的错误信息。

package src;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class test01 {

    public static void main(String[] args) {
        File f = new File("test01.java");//文件当前目录下,在eclipse下是该工程目录下。
        try {
            FileReader fr = new FileReader(f);//将文件读取到内容中
            int m;//int包含char的范围
            while((m=fr.read())!=-1){
                System.out.print((char)(m));//强制转为char
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

2.编写一个程序实现如下功能,从当前目录下的文件input.txt中读取80个字节(实际读到的字节数可能比80少)并将读来的字节写入当前目录下的文件output.txt中

package src;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class test01 {

    public static void main(String[] args) {
        File f1 = new File("input.txt");
        File f2 = new File("output.txt");
        
        try {
            FileInputStream fis = new FileInputStream(f1);
            FileOutputStream fos = new FileOutputStream(f2);
            
            byte[] temp = new byte[80];//定义一个字节数组
            fis.read(temp);//读到内存中
            fos.write(temp);//写到文件
            
            fis.close();
            fos.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("运行结束");
    }
}

3,使用java的输入/输出流技术将一个文本文件的内容按行读出,每读出一行就顺序添加行号,并写入到另一个文件中。

package src;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class test01 {

    public static void main(String[] args) {
        File f1 = new File("input.txt");              
        File f2 = new File("output.txt");
        
        try {
            FileReader fr = new FileReader(f1);
            FileWriter fw = new FileWriter(f2);
            
            BufferedReader br = new BufferedReader(fr);
            BufferedWriter bw = new BufferedWriter(fw);
            
            String temp;
            int i=1;//行号
            while((temp=br.readLine())!=null){
                bw.write(i+","+temp);
                bw.newLine();//换行
                i++;
            }
            bw.flush();//把缓冲区内容写到文件,如果没有这条语句,输出文件为空。
//使用缓存型流时操作完成后必须加上flush语句。
            br.close();
            bw.close();
            br.close();
            bw.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("运行结束");
    }
}

4.编写一个程序,接收从键盘输入的数据,并把从键盘输入的内容写到input.txt文件中,如果输入”quit”,则程序结束。

package src;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class Test {

    public static void main(String[] args) {
        File f = new File("input.txt");
        try {
            FileWriter fw = new FileWriter(f);
            Scanner scanner = new Scanner(System.in);
            String temp;
            while(!((temp=scanner.nextLine()).equals("quit"))){
                fw.write(temp);
            }
            fw.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

5.编写一个程序实现如下功能,文件input.txt是无行结构(无换行符)的汉语文件,从input中读取字符,写入文件output.txt中,每10个字符一行(最后一行可能少于10个字)

/*
 * 注意设置input.txt为UTF-8格式,否则读取中文显示乱码
*/
package src;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class test01 {

    public static void main(String[] args) {
        File f1=new File("input.txt");
        File f2=new File("output.txt");
        try {
            FileReader fr=new FileReader(f1);
            FileWriter fw=new FileWriter(f2);
            
            char temp[]=new char[10];
            int len;
            while((len=fr.read(temp))!=-1)
            {
                if(len==10)
                  fw.write(new String(temp)+"\r\n");
                /* 
                 * windows下的文本文件换行符:\r\n linux/unix下的文本文件换行符:\r 
                 * Mac下的文本文件换行符:\n 
                 */ 
                else
                    fw.write(temp, 0, len);
            }
            fr.close();
            fw.close();
            
        } catch (FileNotFoundException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        } catch (IOException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        System.out.println("程序结束");
    }
}

6.逐行读取汉字文件,复制到另一个文件

package src;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;



public class test01 {
	public static void main(String[] args)  {
		File f = new File("input.txt");
                File outFile=new File("output.txt");
		InputStreamReader read = null;
		OutputStreamWriter write=null;

		try {
		read = new InputStreamReader (new FileInputStream(f));//注意事先设置好input.txt的编码格式为UTF-8,否则输出乱码
	        write=new OutputStreamWriter(new FileOutputStream(outFile));
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        
		BufferedReader reader=new BufferedReader(read);

		String line;

		try {
			while ((line = reader.readLine()) != null) {

			System.out.println(line);
            write.write(line+"\r\n");
			}
			write.flush();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}


}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141435.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Jenkins(5)生成allure报告「建议收藏」

    Jenkins(5)生成allure报告「建议收藏」前言jenkins集成了allure插件,安装插件后运行pytest+allure的脚本即可在jenkins上查看allure报告了。allure安装在运行代码的服务器本机,我这里是用的dock

    2022年7月30日
    5
  • 我们做出了一个艰难的决定

    我们做出了一个艰难的决定经过半年多的考虑和准备,前天晚上,我们做出了一个艰难的决定:让大儿子在家读书。我厌倦了孩子题海战术,买的课外书根本没有时间读,而他的身心健康变得越来越糟糕了。我知道有很多的理由可以让孩子继续读书,譬如

    2022年7月3日
    18
  • 我的webos系统system-X 1.0 beta发布

    我的webos系统system-X 1.0 beta发布   在经历了将近一个月的努力后,我 的webos终于编写完成,该系统完全用javascript编写,没有用到任何flash以及插件,现在还处于测试阶段,暂时只支持ie浏览器,有许多功能还不完善,期待大家一起给我提出宝贵意见,我会继续努力的.   暂时把他命名为system-X,也就是我的姓名sx的扩展.该webos有以下功能:   1.仿windows的文件夹,支持不同文件夹窗口间

    2022年10月21日
    0
  • 实战篇-OpenSSL之AES加密算法-CFB1模式

    本文属于《OpenSSL加密算法库使用系列教程》之一,欢迎查看其它文章。实战篇-OpenSSL之AES加密算法-CFB1模式一、AES简介二、CFB1模式1、命令行操作2、函数说明3、编程实现(1)特别注意(2)实现CFB1模式加解密(3)测试代码一、AES简介密码学中的高级加密标准(AdvancedEncryptionStandard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程

    2022年4月9日
    123
  • java中重定向和转发的区别_java中转发和重定向的使用区别

    java中重定向和转发的区别_java中转发和重定向的使用区别java重定向和转发的区别response.sendredirect("http://www.foo.com/path/error.html");重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。因为,当你使用重定向时,浏览器中所…

    2022年9月3日
    4
  • Unity零基础到入门 ☀️| 游戏引擎 Unity 从0到1的 系统学习 路线【全面总结-建议收藏】![通俗易懂]

    Unity零基础到入门 ☀️| 游戏引擎 Unity 从0到1的 系统学习 路线【全面总结-建议收藏】![通俗易懂]Unity基础知识学习,Unity学习路线总结。本篇文章对Unity的学习路线做了一个全面系统的总结,对Unity有兴趣的小伙伴福利到了!敬请品尝~

    2022年6月12日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号