String方法与IO流小结

String

1.基础方法

int length();
获取字符串长度 “”

1.char charAt(int index);
获取指定下标位置的元素

2.int indexOf(char ch);
找出指定元素的下标
3.int indexOf(String str);
找出指定字符串的下标
4.int indexOf(char ch, int fromIndex);
5.int indexOf(String str, int fromIndex);
字符或者字符串第一次出现的位置

int lastIndexOf(char ch);
int lastIndexOf(String str);
int lastIndexOf(char ch, int fromIndex);
int lastIndexOf(String str, int fromIndex);
这些方法都是获取指定元素所在的下标位置,元素可以是char类型字符,也可以是字符串。这里找出的是指定元素在字符串中最后一次出现的位置,当然可以通过一定的约束,从哪个位置开始找fromIndex

2.判断方法

boolean endsWith(String str);
判断当前字符串是不是以指定字符串结尾

boolean isEmpty();
判断字符串是否为空 ""空串 JDK1.6之后 null不能读取,不能写入,不能调用方法

boolean equals(Object obj);
继承重写Object类内的方法,完成字符串要求的比较方式

boolean equalsIgnoreCase(String str);
不区分大小写比较 boolean contains(String str); 判断指定字符串是否存在

3.转换方法

String(char[] arr);
使用字符数组中内容创建一个字符串对象

String(char[] arr, int offset, int length);
String(char[] arr, int off, int len);
String(char[] arr, int off, int cou);
String(char[] arg0, int arg1, int arg2);
使用字符数组中内容创建一个字符串对象,offset是从char类型数组中指定下标位置开始获取数据,获取的数据长度是length

static String valueOf(char[] arr);
通过类名调用的静态方法,实际执行的是String(char[] arr);

static String valueOf(char[] arr, int offset, int length);
通过类名调用的静态方法,实际执行的是String(char[] arr, int offset, int length);

char[] toCharArray();
返回当前字符串对应的字符数组

char[] arr = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'};
		
		String str1 = new String(arr);
		System.out.println(str1);
		
		String str2 = new String(arr, 2, 5);
		System.out.println(str2);
		
		String str3 = String.valueOf(arr);
		System.out.println(str3);
		
		String str4 = String.valueOf(arr, 2, 5);
		System.out.println(str4);
		
		char[] charArray = "这个字符串会变成一个字符数组".toCharArray();
		System.out.println(Arrays.toString(charArray));

首先定义了一个字符数组
直接new String创建一个字符串对象
str2 输出的是 从编号2开始的五个字符
Str3 输出的是str1
str4 输出的是一个数组样式的

4.其他方法

String replace(char oldChar, char newChar)

替换,替换不会修改原始的字符串,会创建一个新字符串返回,并且替换效果是所有的对应 的oldChar全部替换成newChar

String[] split(String regex) 按照指定的字符串切割当前字符串 [00:00:15]XXXXXXX
切割的返回值是数组

String substring(int beginIndex) 从指定位置开始,截取子字符串,到字符串末尾

String substring(int beginIndex, int endIndex)
从指定位置开始beginIndex,到endIndex结束,要头不要尾

String toUpperCase() 转大写 字符串小写转大写

String toLowerCase() 转小写 字符串大写转小写

String trim() 去除空格 去除字符串两边的无用空格

IO流

1.基本介绍

I
input 输入流
read 读取数据
O
output 输出流
write 写入数据

2.IO流基类

InputStream
输入流基类
read
OutputStream
输出流基类
write

3.IO流的分类
按流向分:输入输出
按文件操作处理单元分类:字节流和字符流

FileInputStream
文件操作输入字节流
FileOutputStream
文件操作输出字节流

FileReader 文件操作输入字符流
FileWriter 文件操作输出字符流

字节流

4.文件操作输入字符流 FileInputStream

构造方法:(为对象创建文件操作输入字符流)

FileInputStream(File file);
这里是根据提供的File类对象创建对应的文件操作输入字节流。

FileInputStream(String pathName);
这里是根据提供的String类型文件路径,创建对应的文件操作输入字节流。 都会抛出异常:
FileNotFoundException 文件未找到异常。

成员方法:

int read();
从文件中读取一个字节数据返回到方法外。
虽然返回值是一个int类型,但是在整个int类型当中存储的数据是一个byte类型,有
且只有低8位数据有效

int read(byte[] buf); 读取文件的内容是存储在byte类型数组中,返回值是读取到的字节个数
int read(byte[] buf, int offset, int count); 读取文件的内容是存储在byte类型数组中,要求从byte数组offset位置开始,到 count长度结束,返回值是读取到的字节个数
以上三个方法如果读取到文件末尾,返回值都是 -1 EOF End Of File 而且以上方法都要异常抛出
IOException IO异常

对比之下,在使用FileInputStream来read数据时,尽量使用数组返回,速度快。(缓冲)

5.文件操作输出字节流(FileOutputStream)

构造方法:

FileOutputStream(File file);
根据File类对象创建对应的文件输出字节流对象
FileOutputStream(String pathName);
根据String类型文件路径创建对应的文件输出字节流对象

以上两个构造方法,创建的FileOutputStream是删除写/清空写操作,会将原文件中的内容全部删除之后,写入数据。

FileOutputStream(File file, boolean append);
根据File类对象创建对应的文件输出字节流对象。创建对象时给予append参数为
true,表示追加写。
FileOutputStream(String pathName, boolean append);
根据String类型文件路径创建对应的文件输出字节流对象,创建对象时给予append参
数为true,

表示追加写。

FileOutputStream构造方法是拥有创建文件的内容,如果文件存在,不创建,文件不存在且路径正确,创建对应文件。否则抛出异常FileNotFoundException

成员方法:

void write(int b); 写入一个字节数据到当前文件中,参数是int类型,但是有且只会操作对应的低八位数 据 void
write(byte[] buf); 写入字节数组中的内容到文件中 void write(byte[] buf, int
offset, int length); 写入字节数组中的内容到文件中,从指定的offset开始,到指定长度length

fileOutputStream = new FileOutputStream(file);
			
			// 4. 准备byte类型数组
			byte[] bytes = "武汉加油!中国加油!".getBytes();
			byte[] arr = {65, 66, 67, 68, 69, 70, 71};
			
			fileOutputStream.write(bytes);
			fileOutputStream.write(arr, 2, 3);

创建一个数组,数组存放好元素,之后直接把整个数组写进这个文件。

字符流

字符流 = 字节流 + 解码过程
字节组合操作 ==> 对应当前环境编码集的一个字符
如果字符找不到,该数据无效,需要被删除。

1.文件操作输入字符流 FileReader

构造方法:

FileReader(File file)
根据File类对象创建对应的FileReader字符流输入对象
FileReader(String pathName)
根据String类型文件路径创建对应的FileReader字符流输入对象
如果文件不存在,抛出异常FileNotFoundException

成员方法:

int read();
读取文件中的一个字符数据,通过返回值返回,返回值类型是int类型,但是在int类
型中有且只有低16位数据有效
int read(char[] arr);
读取文件中的数据保存到字符数组中,返回值类型是读取到的字符个数
int read(char[] arr, int off, int len);
读取文件中的数据保存到字符数组中,要求从数组中下标offset开始,到len结束,返
回值类型是读取到的字符个数

以上方法,如果读取到文件默认,返回值为-1 EOF End Of File
如果读取操作工作中,出现问题,抛出异常IOException
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值