1. 程式人生 > >Java中的文件和stream流的操作代碼

Java中的文件和stream流的操作代碼

yui ani filter char arraylist nbsp package 效果 set

1.Java中FileRead方法的運用代碼及詳解

package example2;
import java.io.FileReader;
import java.io.IOException;
class FileRead{
public static void main(String[] args) throws IOException{
//創建一個FileWriter對象
//FileWriter fw=new FileWriter("File01.txt",true);
FileReader fr=new FileReader("File01.txt");
//如果寫入的文件已經存在,則會覆蓋寫入
//如果要追加寫入,則要
//調用write方法對文件寫入數據
//在windows中,換行符為\r\n
//在macos中,前期換行符為\r,現在是\n
//在linux操作系統中,換行符為\n
/* int ch;
while((ch=fr.read())!=-1) {
System.out.println((char) ch);
}
fr.close();*/
//使用字符數組進行批量讀取數據
char [] buf=new char[3];
int len;
while((len=fr.read(buf))!=-1) {
String str=new String(buf,0,len);
System.out.println(str);
}
/*
* FileWriter當中的5中寫入數據的方法
* fw.write(int a);參照ASCII表和UNICODE表
* fw.write(String str)寫入完整的字符串
* fw.write(String str,int offset,int count)寫入字符串的一部分
* fw.write(char[] array)寫入完整的字符數組
* fw.write(char[] array,int offset,int count)寫入字符數組的一部分
*
* */
}
}

//Java中的FileWrite方法的使用及詳解

package example2;
import java.io.FileWriter;
import java.io.IOException;
class FileWrite{
public static void main(String[] args) throws IOException {
//創建一個FileWriter對象
//FileWriter fw=new FileWriter("File01.txt",true);
FileWriter fw=new FileWriter("File01.txt");
//如果寫入的文件已經存在,則會覆蓋寫入


//如果要追加寫入,則要
//調用write方法對文件寫入數據
//在windows中,換行符為\r\n
//在macos中,前期換行符為\r,現在是\n
//在linux操作系統中,換行符為\n
/*
* FileWriter當中的5中寫入數據的方法
* fw.write(int a);參照ASCII表和UNICODE表
* fw.write(String str)寫入完整的字符串
* fw.write(String str,int offset,int count)寫入字符串的一部分
* fw.write(char[] array)寫入完整的字符數組

* fw.write(char[] array,int offset,int count)寫入字符數組的一部分
*
* */
fw.write("......daniahhsh");
fw.write("zhaoliying\r\n");
String str="sgsgjajhgs";
fw.write(97);
fw.write(str,0,5);
char[] array= {‘v‘,‘k‘,‘n‘,‘v‘,‘g‘};
fw.write(array,1,3);
fw.write("......bajabjd");
//調用close方法關閉文件
fw.close();
}
}

//Java中BufferRead的使用方法及詳解

package example2;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class BufferRead{
//BufferedReader額外的為大家提供了一個readLine()函數進行讀取以整行的字符串。
//BufferWriter中額外的提供了一個換行函數newLine();
// BufferWriter與filewriter類似,BufferWriter內部有一個長度為8192的char[]字符數組緩沖區。
// 每次寫數據時,是像緩沖區中添加字符。如果緩沖數組滿了,然後統一寫到硬盤的文件中。
// 如果最終關閉時,數組仍然沒滿,那麽就將剩余的有效部分寫到硬盤文件裏。
public static void main(String[] args) throws IOException {
//首先創建一個普通的FileWriter
FileReader fw = new FileReader("File02.txt");
//將這個普通的FileWriter對象傳遞給BufferedWriter構造方法即可。
BufferedReader bw=new BufferedReader(fw);
//讀取單個字符串
/*int ch;
while((ch=bw.read())!=-1) {
System.out.println((char) ch);
}*/

//讀取字符數組(一次性從緩沖區裏讀取多個字符)
/*int len;
char[] buf=new char[3];
while((len=bw.read(buf))!=-1) {
String str=new String(buf,0,len);
System.out.println(str);
}*/
//讀取以整行的字符串
String line;
while((line=bw.readLine())!=null) {
System.out.println(line);
}
bw.close();
}
}

Java中BufferWrite方法的運用及詳解

package example2;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class BufferWrite {
//BufferWriter中額外的提供了一個換行函數newLine();
// BufferWriter與filewriter類似,BufferWriter內部有一個長度為8192的char[]字符數組緩沖區。
// 每次寫數據時,是像緩沖區中添加字符。如果緩沖數組滿了,然後統一寫到硬盤的文件中。
// 如果最終關閉時,數組仍然沒滿,那麽就將剩余的有效部分寫到硬盤文件裏。
public static void main(String[] args) throws IOException {
//首先創建一個普通的FileWriter
FileWriter fw = new FileWriter("File02.txt");
//將這個普通的FileWriter對象傳遞給BufferedWriter構造方法即可。
BufferedWriter bw=new BufferedWriter(fw);
bw.write("sdfghjkl");
bw.newLine();//這個函數會根據你使用的操作系統的不同,而修改換行符的使用。很靈活,在開發中提倡常用。
bw.write("etrytuyxcv");
bw.close();
}
}

//stream流的使用及詳解

package example3;

import java.util.ArrayList;
import java.util.stream.Stream;

public class listStream {
// java8中的流其實是一個stream的接口對象
// jdk中提供了一個java.util.stream.Stream<T>;
public static void main(String[] args) {
// 1.通過一個集合獲取流
ArrayList<String> list = new ArrayList<>();
list.add("趙麗穎,15");
list.add("鹿晗,18");
list.add("李易峰,20");
list.add("蘇寶娟,10");
Stream<String> stream = list.stream();

// 根據數組獲取一個流
String[] arrayStr = new String[] { "dfgha", "tyui", "erqq" };
Stream<String> stream1 = Stream.of(arrayStr);

Integer[] arrayInt = new Integer[] { 10, 20, 50, 40, 60 };
Stream<Integer> stream3 = Stream.of(arrayInt);
list.stream().map(s -> s.split(",")[1]).map(Integer::parseInt).filter(n -> n >= 15)
.forEach(System.out::println);

// 獲取流之後,可以使用映射方法:map(用於轉換的lambda表達式)
Stream<Integer> arrayIntger = list.stream().map((String str) -> {
int num = Integer.parseInt(str);
return num;
});

// lambda表達式
// s->System.out.println(s);
// 對象名調用成員方法
// System.out::println();
// 如果流當中的元素特別多,那麽一個人挨個處理比較慢,效率低。
// 對流當中的元素使用多個人處理。稱為“並發”
// 如何獲取並發流(.parallelStream())
System.out.println("================");
//如此調用也是同樣的效果
//使用並發流會有多個人同時搶占位置,順序會被打亂,但不會出現重復。
list.stream().parallel().forEach(System.out::println);

System.out.println("================");

list.parallelStream().forEach(System.out::println);
// 註:使用並發流處理時,到底有幾個人同時操作不用管,jdk會處理。
// 只要正確使用,就不會出現多個人同時搶到一個元素。
}
}

對於Java中的一些很實用方法進行了一下歸類。都是本人實際操作運行成功的案例代碼。可以避免少走一些彎路。

革命尚未成功,同誌仍需努力!

Java中的文件和stream流的操作代碼