|
A B 两个txt文档,里面都是单词,一个一行。对于A里面的单词 如果 在B里面有,则保留如果在B里面没有 则将其删除删除,并最好将删除的单词输出到另外一个txt C文件当中 。。求java处理方法。我有eclipse 。最好是支持直接文件读取的 new FileReader("F:/A.txt") 这样的 谢谢各位 我刚学到继承。这个还做不了 谢谢 求代码怎么写
. A7 O/ z2 I% @# K6 S+ Z8 }
7 e: s; J; v8 T2 V/ ?2 J+ h2 E8 D
这是我之前的提问) ~0 U5 K" c" e- Y5 G" i; E
https://www.pdawiki.com/forum/thread-20151-1-1.html
5 U! M( c0 _1 G/ y) j3 H
1 ^/ m P. ~* y! a7 G- H+ }! ^* I( K2 W) M3 u
+ s6 x! B5 s% q代码有了
: \3 H, N" F; l/ a* O使用方法 在f盘中放入相应的A和B即可5 r1 M+ F; A: W0 g- x0 a7 ?
7 w! E# |% E$ }5 `2 @* _import java.io.BufferedReader;
. V, D- Z! ]3 a1 Z9 [2 ^2 _$ nimport java.io.BufferedWriter;
+ z- o. P5 S4 D" W% e! fimport java.io.File;
1 i) M# O+ e/ z% X3 D* iimport java.io.FileReader;# |& V8 g5 i- G* k8 D3 m
import java.io.FileWriter;4 Z5 m! r& |( S% J0 W( n2 q2 K0 E
import java.io.IOException;: f$ {, i- r5 R$ q4 t& j
import java.util.ArrayList;
! r, g5 s9 o: W" Y- O! m% bimport java.util.List;
$ V" ^% w- y/ m ~: |public class Test {3 u8 y2 [, @; k! W
' r/ t. b5 v1 k" B! g. J' O public static void main(String[] args) throws Exception {
+ Q: l4 \/ u9 O7 c3 U7 |
- z: h' v+ E: t3 M1 b. I1 q List<String> wordA = getWords("F:/A.txt");
! H& m& G" ^8 ~8 c( d1 g" h8 ~ List<String> wordB = getWords("F:/B.txt");
6 Z8 y$ n) G5 |% Y x( R+ t W8 ^ // A单词中B里面有的集合
/ K# U2 U" L( Y! s! b List<String> wordC = new ArrayList<String>();
1 t4 R% \/ A$ u+ @: @ // A单词中B里面没有的集合, m5 |) E! |& W3 H$ ?7 m, n
List<String> wordD = new ArrayList<String>();" q1 o5 j5 U$ N; i- N) R4 t
+ k2 L7 U' C% T K, N# T
for (String words : wordA) {5 F# m+ j) n& O+ Q# U0 M
if (wordB.contains(words)) {( L7 t0 B; f0 H+ j/ o/ E$ e3 v0 Y
wordC.add(words);" l3 S5 i5 j1 H* u5 y5 d
} else {. ^! D: X: ~) z1 v
wordD.add(words);; m" g- I1 J4 M8 J- H) v$ h
}# B: ^3 r. ]0 J m7 M c9 j/ z
}
/ t/ G( R: j6 N# N2 N
# _3 t0 H4 h/ [: I' w$ {3 E // 如果wordD为空,说明A的单词B里面都有" Z: H9 t% D1 _
if (wordD.isEmpty()) {
8 M: O& C% y( C1 ]" c3 P3 i return;! t f5 G$ q8 Q6 _+ \4 A8 m
}
5 s* z! b: |0 u) ^- [ E 9 |7 N) t) d1 [7 X
File a = new File("F:/A.txt");$ ]2 E3 q) [8 O
File c = new File("F:/C.txt");
/ J1 k! t6 l! T5 n c.createNewFile();
1 y) v% I9 @! [' x0 M8 J8 u
2 d; L/ H4 Y! W5 Q7 N8 H // 向A文件中写入B中存在的单词
0 B# R" g8 A* w; n) |- c4 B8 B BufferedWriter bw = new BufferedWriter(new FileWriter(a));1 V/ @1 d5 q4 I9 ~9 V
for (String w : wordC) {
% }0 b/ ? U1 O9 q bw.write(w + "\r\n");
& u& e( n ]1 z t) s* m2 l/ B }! Q6 ^- C. U7 }& Q
bw.flush();' l$ T0 ]0 c0 p2 ?# f
bw.close();
. a, y @! y' l0 u8 d 6 r* T6 {! n4 I( V% ?
// 向C文件中写入B中不存在的单词
: Q& {+ ? a Z8 A6 _ bw = new BufferedWriter(new FileWriter(c));# \( Z+ A0 Z- @" \) d
for (String w : wordD) {
+ j/ O' B# H5 ~2 F, S+ T/ G+ [ bw.write(w + "\r\n");& d$ }/ V n- Z: c9 n
}
5 G% U8 R: @+ |7 L: h S bw.flush();) q1 I! v, y( p# i: e7 `
bw.close();
% J' d7 K- b' }- C }
( v4 S/ g8 L& F0 K" z' X/ K / P% c3 s2 _* n" J/ m8 V8 U7 N
/**
* J- B* i$ L: o' w * 从文件中读取单词( a7 h9 g' U# h- V% d
* @param filePath 文件完整路径# n9 g4 s! B! \& Q. [
* @return
5 p( j9 `9 t# z9 C * @throws IOException
! D9 ]1 L* y& o2 v2 C# { P/ I" | A) f */
$ g+ I7 N8 s7 R) Z static List<String> getWords(String filePath) throws IOException {
9 N% }' z8 f/ f' N0 T+ T% {' `+ P4 N8 r List<String> words = new ArrayList<String>();
4 ]4 E' K; q- v2 I File file = new File(filePath);, M% r+ m! c, T9 R4 z
4 n. i4 W, v6 v' j4 D6 e) \
if (!file.exists() || file.isDirectory()) {
0 W9 b, Y3 l8 H/ G* d9 T System.out.println("文件路径无效");
2 e$ t/ U1 z" |% o9 G return words;" a5 Y% @8 }0 ]0 M: j
}
, p% k1 V2 F* p3 J ' N, b4 S- F2 j. @% B# V1 ~
BufferedReader br = new BufferedReader(new FileReader(file));7 d3 q# d; W. R: \5 p( N* {
String tmp = null;& d" x- Q2 s' i" m2 r
- e( Y/ Q# P6 M6 \ while ((tmp = br.readLine()) != null) {
/ {* h1 i" K0 x, p; b. x words.add(tmp);
U$ e* H! J6 ?, \ }, j- B% D0 S: l) g0 o! `
' `/ Y3 V# @7 R
br.close();
' x0 }, {4 ?% d& t* }2 g return words;6 E/ `6 `" w% ^# E, u
}0 G# ?# ?( t' S! Y; b! ?$ B; K
{' |9 z, t5 e) z d% h}
' ]+ i' `8 K3 W* J+ Y' N7 t( `( a7 B; \1 F% S. `3 J: ~3 w. c: A
- A: z, d3 B+ |7 u
: @, v0 ~0 U1 p, N# j |
|