当前位置: 首页 > news >正文

Java从文件读入以及读出至文件

RT(目前为了比赛使用,并未深究...)

读入1:

try {
//	创建读取字符数据的流对象。 
//	读取路径不正确时会抛 IOException 
//	用一个读取流对象关联一个已存在文件。   
//	用Reader中的read方法读取字符。 
	FileReader reader = new FileReader("in.txt");
	int ch = 0;
	while((ch = reader.read()) != -1) {  
//		System.out.print((char)ch); 
		if(ch == ' ') continue;
		System.out.print(ch-'0' + " ");
	}  
		reader.close();
	} 
	catch (IOException e) {
		e.printStackTrace();
}


读出1:

		try {
	打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
			FileWriter writer = new FileWriter("out.txt", true);
			for(int i = 1; i <= 10; ++i) {
				writer.write(i + " ");
			}
			writer.close();
		} 
		catch (IOException e) {
			e.printStackTrace();
		}


读入2:

File file = new File("in.txt");
Reader reader = null;
try {
	System.out.println("以字符为单位读取文件内容,一次读一个字节:");
	// 一次读一个字符
	reader = new InputStreamReader(new FileInputStream(file));
	int tempchar;
	while ((tempchar = reader.read()) != -1) {
		// 对于windows下,\r\n这两个字符在一起时,表示一个换行。
		// 但如果这两个字符分开显示时,会换两次行。
		// 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。
		if (((char) tempchar) != '\r') {
		// System.out.print((char) tempchar);
			if(tempchar == ' ') continue;
			System.out.print(tempchar-'0');
		}
	}
	reader.close();
}
catch (Exception e) {
	e.printStackTrace();
}


读出2:

        try {
            // 打开一个随机访问文件流,按读写方式
            RandomAccessFile randomFile = new RandomAccessFile("out.txt", "rw");
            // 文件长度,字节数
            long fileLength = randomFile.length();
            //将写文件指针移到文件尾。
            randomFile.seek(fileLength);
            //randomFile.writeBytes("77654321");
            for(int i = 0; i < 10; ++i)
            	randomFile.writeBytes(i+" ");
            randomFile.close();
        } catch (IOException e) {
            e.printStackTrace();
        }


新增:

输出至文件方法:

PrintStream:为其他输出流添加了功能,是他们能够方便的打印各种数据值的表现形式。

1. 永远不会抛出IOException,异常情况可通过checkError()方法测试的内部结构;
2. 可自动刷新。

System.setOut(PrintStream ps):原本 system.out 是系统 standard output stream, 默认是向控制台输出信息,但是通过System.setOut方法就可以将输出定向到其他的文件或者地方。

比如:

PrintStream outputStream = new PrintStream(new File(“a.txt”));

System.setOut(outputStream);

//这时,系统的标志输出流就定向到了a.txt 文件中。

如果还想继续向控制台输出信息,则需要在setOut方法调用之前保存标准的输出流,即:

PrintStream originalOutputStream = System.out;

System.setOut(originalOutputStream);

import java.io.FileNotFoundException;
import java.io.PrintStream;

public class Main1 {  
     public static void main(String[] args) {  
 		try {
	    	 PrintStream original = System.out;
	         PrintStream pStream;
	         pStream = new PrintStream("D:/a.txt");
	         System.setOut(pStream);  
	         pStream.println("12321");  
	         System.setOut(original);  
	         System.out.println("控制台");  
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} 
     }  
} 


继续加油~

相关文章:

  • HDU-5963 朋友(树上博弈)
  • HDU 6005 Pandaland(无向图最小环)
  • Cura源码在Ubuntu15.04上编译脚本(成功)
  • SPOJ - CHICAGO 106 miles to Chicago(乘积最短路)
  • HTML5之FileReader的使用
  • LeetCode 202 Happy Number(floyd判圈算法(龟兔赛跑算法))
  • css3 中text-align:justify
  • HDU-1503 Advanced Fruits(LCS)
  • LightOJ-1253 Misere Nim(Nim求解不正常的博弈)
  • python发送电子邮件模块smtplib
  • uva-1349 Optimal Bus Route Design(最小费用最大流)
  • 一个简单的通用验证类的实现
  • ZOJ-3987 Numbers 2017CCPC秦皇岛站G题 (二进制乱搞、贪心)
  • iOS开发-类簇(Class Cluster)
  • HDU-1350 Taxi Cab Scheme(最小路径覆盖)
  • 《剑指offer》分解让复杂问题更简单
  • Cumulo 的 ClojureScript 模块已经成型
  • Java Agent 学习笔记
  • JavaScript学习总结——原型
  • java取消线程实例
  • spring boot下thymeleaf全局静态变量配置
  • 机器学习 vs. 深度学习
  • 使用Gradle第一次构建Java程序
  • 线性表及其算法(java实现)
  • elasticsearch-head插件安装
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 阿里云移动端播放器高级功能介绍
  • ###项目技术发展史
  • #微信小程序:微信小程序常见的配置传值
  • $GOPATH/go.mod exists but should not goland
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (四)linux文件内容查看
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (转载)(官方)UE4--图像编程----着色器开发
  • .axf 转化 .bin文件 的方法
  • .Net MVC + EF搭建学生管理系统
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .net2005怎么读string形的xml,不是xml文件。
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .NET委托:一个关于C#的睡前故事
  • @font-face 用字体画图标
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [100天算法】-每个元音包含偶数次的最长子字符串(day 53)
  • [383] 赎金信 js
  • [AIGC 大数据基础]hive浅谈
  • [AIGC] Redis基础命令集详细介绍
  • [Android]如何调试Native memory crash issue
  • [Angularjs]ng-select和ng-options
  • [BZOJ1178][Apio2009]CONVENTION会议中心
  • [C#]winform制作圆形进度条好用的圆环圆形进度条控件和使用方法
  • [CentOs7]搭建ftp服务器(2)——添加用户
  • [CSS]浮动