2 package org
.tartarus
.snowball
;
4 import java
.lang
.reflect
.Method
;
7 import java
.io
.BufferedReader
;
8 import java
.io
.BufferedWriter
;
9 import java
.io
.FileInputStream
;
10 import java
.io
.InputStreamReader
;
11 import java
.io
.OutputStreamWriter
;
12 import java
.io
.OutputStream
;
13 import java
.io
.FileOutputStream
;
15 public class TestApp
{
16 private static void usage()
18 System
.err
.println("Usage: TestApp <algorithm> <input file> [-o <output file>]");
21 public static void main(String
[] args
) throws Throwable
{
22 if (args
.length
< 2) {
27 Class stemClass
= Class
.forName("org.tartarus.snowball.ext." +
29 SnowballProgram stemmer
= (SnowballProgram
) stemClass
.newInstance();
30 Method stemMethod
= stemClass
.getMethod("stem", new Class
[0]);
33 reader
= new InputStreamReader(new FileInputStream(args
[1]));
34 reader
= new BufferedReader(reader
);
36 StringBuffer input
= new StringBuffer();
38 OutputStream outstream
;
40 if (args
.length
> 2) {
41 if (args
.length
== 4 && args
[2].equals("-o")) {
42 outstream
= new FileOutputStream(args
[3]);
48 outstream
= System
.out
;
50 Writer output
= new OutputStreamWriter(outstream
);
51 output
= new BufferedWriter(output
);
54 if (args
.length
> 4) {
55 repeat
= Integer
.parseInt(args
[4]);
58 Object
[] emptyArgs
= new Object
[0];
60 while ((character
= reader
.read()) != -1) {
61 char ch
= (char) character
;
62 if (Character
.isWhitespace((char) ch
)) {
63 if (input
.length() > 0) {
64 stemmer
.setCurrent(input
.toString());
65 for (int i
= repeat
; i
!= 0; i
--) {
66 stemMethod
.invoke(stemmer
, emptyArgs
);
68 output
.write(stemmer
.getCurrent());
70 input
.delete(0, input
.length());
73 input
.append(Character
.toLowerCase(ch
));