`

黑马程序员22-1:控制台IO,输入输出流转换,输入输出到文件,字体

 
阅读更多

------- android培训 java培训、期待与您交流!-------



package cn.itcast.io.p1.transstream.demo;

import java.io.IOException;
import java.io.InputStream;
/*
 * 读取一个键盘录入的数据,并打印在控制台上。
 * 
 * 键盘本身就是一个标准的输入设备。
 * 对于java而言,对于这种输入设备都有对应的对象。
 * 
 * 
 */
public class ReadKey {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {

//		readKey();
//		System.out.println((int)'\r');
//		System.out.println((int)'\n');
		
		readKey2();
		
	}

	public static void readKey2() throws IOException {
		
		/*
		 * 获取用户键盘录入的数据,
		 * 并将数据变成大写显示在控制台上,
		 * 如果用户输入的是over,结束键盘录入。
		 * 
		 * 思路:
		 * 1,因为键盘录入只读取一个字节,要判断是否是over,需要将读取到的字节拼成字符串。
		 * 2,那就需要一个容器。StringBuilder.
		 * 3,在用户回车之前将录入的数据变成字符串判断即可。 
		 * 
		 */
		
		//1,创建容器。
		StringBuilder sb = new StringBuilder();
		
		//2,获取键盘读取流。		
		InputStream in = System.in;
		
		//3,定义变量记录读取到的字节,并循环获取。 		
		int ch = 0;
		
		while((ch=in.read())!=-1){
			
//			在存储之前需要判断是否是换行标记 ,因为换行标记不存储。 
			if(ch=='\r')
				continue;
			if(ch=='\n'){
				String temp = sb.toString();
				//自定义判断标记,当只输入over时关闭
				if("over".equals(temp))
					break;
				System.out.println(temp.toUpperCase());
				//输出之后,记得删除已经存进去的东西,重新存
				sb.delete(0, sb.length());
			}
			else
			//将读取到的字节存储到StringBuilder中。
			sb.append((char)ch);
			
//			System.out.println(ch);
		}
		
	}

	public static void readKey() throws IOException {
		
		InputStream in = System.in;
		
		int ch = in.read();//阻塞式方法。		
		System.out.println(ch);
		int ch1 = in.read();//阻塞式方法。		
		System.out.println(ch1);
		int ch2 = in.read();//阻塞式方法。		
		System.out.println(ch2);
		
//		in.close();
		
//		InputStream in2 = System.in;
//		int ch3 = in2.read();
		
	}
	

}



package cn.itcast.io.p1.transstream.demo;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

public class TransStreamDemo {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {

		//字节流。 
		InputStream in = System.in;
//		int ch = in.read();
//		System.out.println(ch);
//		int ch1 = in.read();
//		System.out.println(ch1);
		
		//将字节转成字符的桥梁。转换流。 
		InputStreamReader isr = new InputStreamReader(in);
		
//		int ch = isr.read();
//		System.out.println((char)ch);
		
		//字符流。
		BufferedReader bufr = new BufferedReader(isr);
		
		OutputStream out = System.out;
		
		OutputStreamWriter osw = new OutputStreamWriter(out);
		
		BufferedWriter  bufw = new BufferedWriter(osw);
		
		
		
		String line = null;
		
		while((line=bufr.readLine())!=null){
			if("over".equals(line))
				break;
//			System.out.println(line.toUpperCase());
//			osw.write(line.toUpperCase()+"\r\n");
//			osw.flush();
			
			bufw.write(line.toUpperCase());
			bufw.newLine();
			bufw.flush();
		}
		
		
	}

}


package cn.itcast.io.p1.transstream.demo;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class TransStreamDemo2 {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {

		
		/*
		 * 1,需求:将键盘录入的数据写入到一个文件中。 
		 * 
		 * 2,需求:将一个文本文件内容显示在控制台上。
		 * 
		 * 3,需求:将一个文件文件中的内容复制到的另一个文件中。
		 */
		
		BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
		
		BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("b.txt")));
		
		
		String line = null;
		
		while((line=bufr.readLine())!=null){
			if("over".equals(line))
				break;
			
			bufw.write(line.toUpperCase());
			bufw.newLine();
			bufw.flush();
		}
		
		
	}

}


package cn.itcast.io.p1.transstream.demo;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;

public class TransStreamDemo3 {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {

		readText_2();
	}

	public static void readText_2() throws IOException, FileNotFoundException {
		
		
		InputStreamReader isr = new InputStreamReader(new FileInputStream("gbk_1.txt"),"utf-8");
		char[] buf = new char[10];
		int len = isr.read(buf);
		String str = new String(buf,0,len);
		System.out.println(str);
		
		isr.close();
	}

	public static void readText_1() throws IOException {
		
		FileReader fr = new FileReader("gbk_1.txt");
		
		char[] buf = new char[10];
		int len = fr.read(buf);
		String str = new String(buf,0,len);
		System.out.println(str);
		
		fr.close();
		
		
	}

	public static void writeText_3() throws IOException {
		
		OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("u8_1.txt"),"UTF-8");
		
		osw.write("你好");
		osw.close();
		
	}

	public static void writeText_2() throws IOException {
		
		OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("gbk_3.txt"),"GBK");
		
//		OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("gbk_3.txt"),"GBK");
//		FileWriter fw = new FileWriter("gbk_1.txt");
		
		/*
		 * 这两句代码的功能是等同的。 
		 * FileWriter:其实就是转换流指定了本机默认码表的体现。而且这个转换流的子类对象,可以方便操作文本文件。
		 *             简单说:操作文件的字节流+本机默认的编码表。
		 * 				这是按照默认码表来操作文件的便捷类。
		 * 
		 * 如果操作文本文件需要明确具体的编码。FileWriter就不行了。必须用转换流。 
		 * 
		 */
		
		
		osw.write("你好");
		
		osw.close();
		
		
	}

	public static void writeText_1() throws IOException {
		
		FileWriter fw = new FileWriter("gbk_1.txt");
		
		fw.write("你好");
		
		fw.close();
	}

}





------- android培训 java培训、期待与您交流!-------


详细请查看:http://edu.csdn.net/heima -------

分享到:
评论

相关推荐

    C4Java 基础-03:控制台-任务练习

    在本课程"C4Java 基础-03:控制台-任务练习"中,我们将深入探讨Java编程中与控制台交互的相关技术。这包括如何创建用户友好的控制台菜单,处理多级列表数据,以及了解如何在Java程序中集成Linux管道命令。以下是这些...

    Java程序设计基础:控制台输入输出.pptx

    控制台输入输出 目录 控制台输入输出 掌握Scanner对象的创建 掌握Scanner对象读取数据的方法 程序清单:ComputerArea.java 从控制台输入输出 从控制台获取输入 实际应用中,通常需要Java程序接收来自用户的输入...

    express-console:将控制台输出显示到html页面

    简单的程序包允许将控制台输出显示到Web浏览器 安装方式 通过npm: npm install express-console 通过github: npm install "git+https://github.com/Scorpio1337/express-console.git" 用法 例如,这是简单的...

    MFC中使用控制台输入输出

    在Microsoft Foundation Classes (MFC)库中,虽然主要设计用于创建Windows GUI应用程序,但有时我们需要在MFC程序中实现控制台输入输出的功能。这在进行调试或者需要与用户交互的简单命令行操作时非常有用。本文将...

    控制台中输入输出.docx

    控制台中输入输出多项式操作 控制台中输入输出多项式操作是指在控制台中输入多项式数据,然后进行加减运算,并输出结果。本文将详细介绍控制台中输入输出多项式操作的相关知识点。 链表 链表是一种基本的数据结构...

    matlab代码绿颜色表示-console-puts:控制台输入

    matlab代码绿颜色表示控制台看跌期权 插件的动机 专为喜欢使用测试用例从在线资源中练习编码问题的程序员而设计 要将打印函数添加到行中,对于像 Ruby 这样不需要在现有代码周围加上括号的语言来说很容易。 添加打印...

    swift-Xcode的控制台输出中文

    在Swift编程环境中,使用Xcode进行开发时,我们经常需要通过控制台输出信息来调试代码。当涉及到中文字符时,可能会遇到一些问题,比如乱码或者无法正常显示。本篇文章将详细探讨如何在Xcode的控制台正确地输出中文...

    FizzBuzz-Parser:控制台应用程序为各种 Fizz Buzz 变体提供输出

    FizzBuzz 是一个经典的编程面试问题,它要求程序员编写一段代码,打印从 1 到一个给定数 N 的数字序列,但遇到以下规则时要进行替换: - 如果数字可以被 3 整除,就替换为 "Fizz"; - 如果数字可以被 5 整除,就...

    console-to-window:控制台到窗口

    -npm 控制台到窗口。安装/预备: 对于浏览器: < script src =" https://lightspeedworks.github.io/console-to-window/console-to-window.js " > </ script >用法: console.log等。执照: 麻省理工...

    Java项目:控制台商城系统(java+打印控制台)

    2. **控制台输入输出**: - **Scanner类**:用于从标准输入(通常是键盘)获取用户输入。例如,用户输入顾客名、商品选择等信息。 - **System.out.println()**:用于在控制台上打印信息,向用户展示系统反馈。 3....

    607.605.JAVA基础教程_IO流与网络编程-复习:IO流概述(607).rar

    Java中的IO流是进行输入/输出操作的核心机制,它涵盖了磁盘、网络、内存等多种数据传输场景。在Java中,IO流分为字符流和字节流两大类,每类又包含输入流(InputStream/Reader)和输出流(OutputStream/Writer)。本...

    控制台输入记事本(文本输入输出)

    标题 "控制台输入记事本(文本输入输出)" 暗示了这是一个关于创建一个简单的文本编辑器或记事本程序的教程,该程序在命令行或控制台环境中运行,允许用户输入文本并进行输出。这个程序可能是用编程语言如C、C++或...

    cocotte-message:控制台消息

    短信介绍显示消息和输出日志安装$ npm install cocotte-message如何使用基本用法var msg = require ( 'cocotte-message' ) ;msg ( '最初' ) ;msg ( '次' ) ;msg ( '最後' ) ;您应该在控制台上看到以下内容[DEBUG] ...

    c#阶乘程序,详细了解了控制台输入输出方法

    1. **控制台输入输出**:在C#中,我们通常使用`Console.ReadLine()`函数来获取用户的输入,它会等待用户在控制台输入一行文本并按下回车键。然后,我们可以使用`int.Parse()`或`int.TryParse()`将输入的字符串转换为...

    Java--IDEA控制台输出output中文乱码(csdn)————程序.pdf

    这行命令告诉Java虚拟机(JVM)使用UTF-8编码来处理文件,包括标准输入输出和错误流,从而确保控制台输出的中文字符能正确显示。 接下来,我们需要设置IDEA自身的文件编码。在IDEA的菜单栏中选择`File`,然后依次...

    console-tomodachi:控制台中的小伙伴

    2. **交互式反馈**:此工具还支持创建交互式的控制台输出,例如可以使用console.input()来请求用户输入,或者console.confirm()来获取用户的确认操作,这在调试过程中非常有用,能够实时验证某些假设或者变量状态。...

    simple-java-poker-game:控制台中的简单Java扑克游戏

    例子例如,此输入: java扑克2H TH AS AD TC 应该产生以下输出: 玩家␣1:␣A牌␣超过␣10s 此输入: java扑克2H TH 1S 1D TC 应产生以下输出: 错误:“无效”卡“名称”“ 1S” 此输入: Java扑克KS 9S QS AS JS ...

    java IO 类层次图

    Java IO系统提供了丰富的类来支持不同类型的输入输出操作,包括但不限于文件读写、网络通信等。本文将通过分析一张清晰明了的Java IO类层次图,详细介绍Java IO体系中的主要类及其关系。 #### 二、Java IO 类层次...

    inner-app-eventing:Spring vs Guava vs Spring Messaging vs Reactor

    输出:启动控制台...输出:准备好输入: 输入:Hello Jimmy 输出:HelloListener:Hello Jimmy - :Thread-Name 输入:韦恩斯世界输出:WorldListener:韦恩斯世界 - :Thread-Name 输入:Hello World 输出:...

Global site tag (gtag.js) - Google Analytics