java 读取一系列文件_java - 从文件中读取文本并将其与一系列字符进行比较 - SO中文参考 - www.soinside.com...

看一下下面的例子:

public class SimpleExample {

public static void main(String[] args) throws ClassNotFoundException {

Scanner inputNumbers = new Scanner(System.in);

List listOfNumbersToStore = new ArrayList<>();

List listOfNumbersToCheck = new ArrayList<>();

int number;

String answer;

boolean flag = true;

// do code within a loop while flag is true

do {

// print message to screen

System.out.print("Would you like to put new number to your file list (Y/N): ");

// get answer (Y/N) to continue

answer = inputNumbers.next();

// if answer is Y or y

if ("Y".equalsIgnoreCase(answer)) {

// print message

System.out.print("Put your number: ");

// get input integer and assign it to number

number = inputNumbers.nextInt();

// add that number to a list of numbers to store to file

listOfNumbersToStore.add(number);

} else if ("N".equalsIgnoreCase(answer)) {

flag = false;

}

} while (flag);

writeToFile(listOfNumbersToStore);

System.out.println("---------- Check numbers ----------");

flag = true; // set it again to true

//do code within a loop while flag is true

do {

System.out.print("Would you like to put new number to your check list (Y/N) : ");

answer = inputNumbers.next();

if ("Y".equalsIgnoreCase(answer)) {

System.out.print("Put your number: ");

number = inputNumbers.nextInt();

listOfNumbersToCheck.add(number);

} else if ("N".equalsIgnoreCase(answer)) {

flag = false;

}

} while (flag);

// get a list from a file

List readFromFile = readFromFile();

// check if there are any common elements within compared lists

boolean areThereAnyCommonElements = !Collections.disjoint(

listOfNumbersToCheck, readFromFile);

//create a new treeset used for containing unique elements and ordering it naturally, from 0 to n

Set set = new TreeSet<>(listOfNumbersToCheck);

set.retainAll(readFromFile);

// print these messages

System.out.println("Are there any common integers between a list from a file and checking list? " + areThereAnyCommonElements);

System.out.println("Those integers are: " + set.toString());

}

/**

* List implements Seriazable interface, therefore store it to a file

* serialized

*

* @param numberOfIntegers

*/

public static void writeToFile(List numberOfIntegers) {

try {

// create a file output stream to write to the file with the specified name.

FileOutputStream fileOutputStream = new FileOutputStream("tekstDataOutputStream");

// writes the serialization stream header to the underlying file stream;

ObjectOutputStream dataOutputStream = new ObjectOutputStream(new BufferedOutputStream(fileOutputStream));

// write a list to object output stream

dataOutputStream.writeObject(numberOfIntegers);

//close them

dataOutputStream.close();

fileOutputStream.close();

} catch (IOException ioE) {

System.err.println("JVM reported an error! Take a look: " + ioE);

}

}

public static List readFromFile() throws ClassNotFoundException {

//create an empty list of integers

List result = new ArrayList<>();

try {

//opening a connection to an actual file

FileInputStream fis = new FileInputStream("tekstDataOutputStream");

//used for reading from a specified input stream

ObjectInputStream reader = new ObjectInputStream(fis);

//get that list

result = (List) reader.readObject();

//close streams

reader.close();

fis.close();

} catch (IOException ioE) {

System.err.println("JVM reported an error! Take a look: " + ioE);

}

return result;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值