字符数组

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

痴心易碎 提交于 2019-12-03 22:53:50
Java中IO流,输入输出流概述与总结 总结的很粗糙,以后时间富裕了好好修改一下。 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中。其中, 所有输入流类都是抽象类 InputStream(字节输入流),或者抽象类Reader(字符输入流)的子类 ; 而所有输出流都是 抽象类OutputStream(字节输出流)或者Writer(字符输出流)的子类。 【首先需要明白的是:流是干什么的???(为了永久性的保存数据) 根据数据流向的不同分为输入流和输出流; 根据处理数据类型的不同分为字符流和字节流; 】 【然后需要明白的是输入模式和输出模式是谁流向谁: InputStream(字节输入流)和Reader(字符输入流)通俗的理解都是读(read)的。 OutputStream(字节输出流)和Writer(字符输出流)通俗的理解都是写(writer)的。 】 最后下面搞清楚各种流的类型的该怎么用,谁包含谁,理清思路。 2:InputStream类是字节输入流的抽象类,是所有字节输入流的父类,InputStream类具有层次结构如下图所示; 3:java中的字符是Unicode编码的,是双字节的。InputStream是用来处理字节的,在处理字符文本时很不方便。Java为字符文本的输入提供了专门的一套类Reader

Io流

荒凉一梦 提交于 2019-12-03 21:23:06
io流的继承体系 字节流继承体系 字符流继承体系 IO流概述 IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 java.io IO流分类 1:按照数据流向 站在内存角度 输入流 读入数据 输出流 写出数据 2:按照数据类型 字节流 可以读写任何类型的文件 比如音频 视频 文本文件 字符流 只能读写文本文件 什么情况下使用哪种流呢? 如果数据所在的文件通过windows自带的记事本打开并能读懂里面的内容,就用字符流。其他用字节流。 IO流基类概述 IO流基类概述 1.字节流的抽象基类: InputStream ,OutputStream。 2.字符流的抽象基类: Reader , Writer。 注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。 如:InputStream的子类FileInputStream。 如:Reader的子类FileReader。 FileOutputStream写出数据 构造方法 FileOutputStream(File file) FileOutputStream(String name) 案例演示 FileOutputStream写出数据 注意事项: 创建字节输出流对象了做了几件事情? 1.系统资源创建a.txt文件 2.建了一个fos对象 3.fos对象指向这个文件

Atman开发实习生的笔试题

限于喜欢 提交于 2019-12-03 14:47:47
坐标:山东 编程题(限时30分钟) 如何判断一个字符串是否为合法的IP地址 。 要求: 1. 不能使用正则表达式和自带的库函数。 2. 列出全部测试用例,并给出原因。 3. 把代码的后缀名改成txt后上传,不用压缩。 在字符串中找出第一个只出现一次的字符。 (1). 列出全部测试用例,每种类型给出一个实际的测试数据及其期望结果。如case1:输入:abcd13faeb,输出:c (2). 用自己熟悉的编程语言写出完整程序 要求: (a). 注明所使用的语言名称 (b). 不能依赖库函数直接实现此功能,需使用基础数据结构(数组/链表/队列/栈/hash等)实现 (c). 时间复杂度O(n)* 来源: https://www.cnblogs.com/javastudydoing/p/11800909.html

第十周作业课程总结

耗尽温柔 提交于 2019-12-03 05:18:54
一、Java字符流的使用: 字符输入/输出流、字符文件和字符缓冲区的输入/输出流 java 中字节流的功能十分强大,几乎可以直接或间接地处理任何类型的输入/输出操作。 1、字符输入流: Reader 类是所有字符流输入类的父类,该类定义了许多方法,这些方法对所有子类都是有效的。 Reader 类的常用子类如下: CharArrayReader 类:将字符数组转换为字符输入流,从中读取字符。 StringReader 类:将字符串转换为字符输入流,从中读取字符。 BufferedReader 类:为其他字符输入流提供读缓冲区。 PipedReader 类:连接到一个 PipedWriter。 InputStreamReader 类:将字节输入流转换为字符输入流,可以指定字符编码。 与 InputStream 类相同,在 Reader 类中也包含 close() 、 mark() 、 skip() 和 reset() 等方法. Reader类中的 read() 方法 方法名及返回值类型 说明 int read() 从输入流中读取一个字符,并把它转换为 0~65535 的整数。如果返回 -1, 则表示已经到了输入流的末尾。为了提高 I/O 操作的效率,建议尽量使 用下面两种 read()方法 int read(char[] cbuf) 从输入流中读取若干个字符,并把它们保存到参数

第十周课程总结

半腔热情 提交于 2019-12-03 04:57:36
一、File类 File类是java.io包中唯一对文件本身进行操作的类。它可以进行创建、删除文件等操作。 File类常用操作 (1)创建文件 可以使用 createNewFille() 创建一个新文件。 注意: Windows 中使用反斜杠表示目录的分隔符""。 Linux 中使用正斜杠表示目录的分隔符"/"。 最好的做法是使用 File.separator 静态常量,可以根据所在操作系统选取对应的分隔符。 (2)删除文件 可以使用 delete() 删除一个文件。 一般删除文件前,最好先使用 exists() 判断一下文件是否存在。 (3)创建文件夹 可以使用 mkdir() 来创建文件夹,但是如果要创建的目录的父路径不存在,则无法创建成功。 如果要解决这个问题,可以使用 mkdirs(),当父路径不存在时,会连同上级目录都一并创建。 (4)列出指定目录全部文件 File中给出了两种列出文件夹内容的方法: list(): 列出全部名称,返回一个字符串数组。 listFiles(): 列出完整的路径,返回一个File对象数组。 (5)删除目录 可以使用 delete() 来删除目录。 需要注意的是,如果这个目录不为空,直接用 delete() 删除会失败。 二、认识RandomAccessFile类 RandomAccessFile是Java提供的对文件内容的访问,既能够读取文件

第十周编程总结

怎甘沉沦 提交于 2019-12-03 04:06:07
题目:将奇数位的小写字母传化为大写字母 实验代码: package Bian; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import java.util.Scanner; public class A { public static void main(String[] args) throws Exception { File f = new File("f:" + File.separator + "test.txt");//定位文件位置 OutputStream out = null; out = new FileOutputStream(f); Scanner in = new Scanner(System.in);//输入 System.out.println("请输入:"); String str = in.nextLine(); byte b[] = str.getBytes();//转为数组 for (int i = 0; i < b.length; i++) { if (i % 2 == 0 && b[i] >= 'a' && b[i] <= 'z') {//判定条件 b[i] = (byte) (b[i] - 32); } out

通过赋初值的方式给一维字符数组赋字符串

匿名 (未验证) 提交于 2019-12-02 23:49:02
同C语言中其它数据类型一样,字符串也有常量和变量之分。字符串常量是由双引号括起来的一串字符。如"string"就是字符串常量,printf和scanf函数中的"%d%d"也是字符串常量。 C语言本身并没有设置一种类型来定义字符串变量,所以字符串的存储完全依赖于字符数组,但字符数组并不等于是字符串变量。下面介绍给一维字符数组赋初值的方法。 1.将所赋初值放在一对花括号中,如: char str [ 10 ]={ 's' , 't' , 'r' , 'i' , 'n' , 'g' , '\0' }; 此处赋初值时,人为地在最后一个有效字符后加入了串结束标志 '\0' 。而如果所赋初值的字符个数少于数组的元素时,系统将自动在其后所有的元素中加入串结束标志 '\0' 。因此,上述赋初值语句也可以写成: char str [ 10 ]={ 's' , 't' , 'r' , 'i' , 'n' , 'g' }; 由此可知,当使用一个字符数组来存放一个字符串时,数组的大小至少要比实际存放的最长字符串多一个元素,多出的这个元素用于存放串结束标志。否则,系统会将其视为一个普通的一维字符数组来处理。 2.当用赋初值的方式来定义字符数组大小时,这时的定义应写成: char str [ ]={ 's' , 't' , 'r' , 'i' , 'n' , 'g' , '\0' }; 若上面的定义写成:

LeetCode 151:给定一个字符串,逐个翻转字符串中的每个单词 Reverse Words in a String

匿名 (未验证) 提交于 2019-12-02 23:47:01
公众号:爱写bug(ID:icodebugs) 翻转字符串里的单词 Given an input string, reverse the string word by word. 示例 1: 输入: "the sky is blue" 输出: "blue is sky the" 示例 2: 输入: " hello world! " 输出: "world! hello" 解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 示例 3: 输入: "a good example" 输出: "example good a" 解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。 说明: 无空格字符构成一个单词。 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。 进阶: 请选用 C 语言的用户尝试使用 O (1) 额外空间复杂度的原地解法。 Note: A word is defined as a sequence of non-space characters. Input string may contain leading or trailing spaces. However, your reversed string should not

leetcode 443 压缩字符串

匿名 (未验证) 提交于 2019-12-02 23:38:02
题目 给定一组字符,使用 原地算法 将其压缩。 压缩后的长度必须始终小于或等于原数组长度。 字符 (不是 int 整数类型)。 在完成 原地 修改输入数组 后,返回数组的新长度。 进阶: 你能否仅使用O(1) 空间解决问题? 示例 1: 输入: ["a","a","b","b","c","c","c"] 输出: 返回6,输入数组的前6个字符应该是:["a","2","b","2","c","3"] 说明: "aa"被"a2"替代。"bb"被"b2"替代。"ccc"被"c3"替代。 示例 2: 输入: ["a"] 输出: 返回1,输入数组的前1个字符应该是:["a"] 说明: 没有任何字符串被替代。 示例 3: 输入: ["a","b","b","b","b","b","b","b","b","b","b","b","b"] 输出: 返回4,输入数组的前4个字符应该是:["a","b","1","2"]。 说明: 由于字符"a"不重复,所以不会被压缩。"bbbbbbbbbbbb"被“b12”替代。 注意每个数字在数组中都有它自己的位置。 注意: 所有字符都有一个ASCII值在 [35, 126] 区间内。 1 <= len(chars) <= 1000 。 代码 小结:i指目标结果index, j 指当前遍历的数组index。注意在跳出遍历后,同样需要对最后一组做压缩。 class

【软考】【软件设计师】【知识模块】【第3章:数据结构】

感情迁移 提交于 2019-12-02 23:25:51
第三章:数据结构: 数据结构是程序设计的重要基础 学会数据结构的目的:   学会从问题出发,分析和研究计算机加工的数据的特性,   以便为应用所涉及的数据选择适当的逻辑结构、存储结构及其相应的操作方法;   【对于一个数据结构,需要考虑三个因素:逻辑结构、存储结构、运算方法(操作方法)】   为提高利用计算机解决问题的效率服务;   数据结构是指:数据元素的集合及元素间的相互关系和构造方法。     元素间的相互关系:数据的逻辑结构     元素间关系的存储:存储结构(或称之为 物理结构)        数据结构的分类:     线性结构     非线性结构       又分为树结构、图结构;       数据结构是算法设计的基础。   线性结构:线性结构主要用于 对客观世界中具有单一前驱和后继的数据关系进行描述。     线性表       按照存储方式分类:         采用顺序存储:用一组地址连续的存储的存储单元 依次存储线性表中的数据元素,           现象:逻辑上相邻的两个元素,在物理位置上也相邻。           优点:可以随机存取表中的元素,即可以对数据随机访问。           缺点:插入和删除需要移动其他元素;(有时的移动量挺大)           特点:              各个结点的空间应该需要事先分配完毕,后续不论是否有数据