diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..c614366 Binary files /dev/null and b/.DS_Store differ diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..8a94ddd --- /dev/null +++ b/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/.project b/.project new file mode 100644 index 0000000..df4a539 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + LZW_Compression + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Writer.java b/Writer.java deleted file mode 100644 index 43facb6..0000000 --- a/Writer.java +++ /dev/null @@ -1,3 +0,0 @@ -public class Writer { - -} diff --git a/decoded.txt b/decoded.txt new file mode 100644 index 0000000..7e75d29 --- /dev/null +++ b/decoded.txt @@ -0,0 +1 @@ +abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcdefgabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcdefgabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc \ No newline at end of file diff --git a/intcodesOutput.txt b/intcodesOutput.txt new file mode 100644 index 0000000..98ea32f --- /dev/null +++ b/intcodesOutput.txt @@ -0,0 +1 @@ +97 98 99 256 258 257 259 262 261 264 260 266 263 267 265 268 271 270 273 269 275 272 276 274 277 280 279 282 278 284 281 285 283 286 289 288 283 100 101 102 103 290 287 298 297 300 291 99 293 295 301 299 302 306 309 308 311 307 313 310 314 312 315 318 317 320 316 322 319 323 321 324 327 326 329 325 331 328 99 \ No newline at end of file diff --git a/lzw-file1.txt b/lzw-file1.txt new file mode 100644 index 0000000..50a0185 --- /dev/null +++ b/lzw-file1.txt @@ -0,0 +1 @@ +abcabcabcabcabcabcabcabcabcabcabcabc diff --git a/lzw-file2.txt b/lzw-file2.txt new file mode 100644 index 0000000..5fa2b99 --- /dev/null +++ b/lzw-file2.txt @@ -0,0 +1,2 @@ +abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcdefgabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcdefgabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc + diff --git a/lzw-file3.txt b/lzw-file3.txt new file mode 100644 index 0000000..20fb9d1 --- /dev/null +++ b/lzw-file3.txt @@ -0,0 +1,83 @@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*##############################################################&############################################################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*###########################################################&,,,/###########################################################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#########################################################&,,,,,,,&#########################################################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#################% &##################################&,,,,,,,,,,,&################################### &#################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*################& .###############################&,,,,,,,,,,,,,,,&###############################& ################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*################ &#############################(,,,,,,,&&&,,,,,,,,&############################# &###############&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*###############% %###########################&,,,,,,,&&&&&&&,,,,,,,*%########################### ################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*################ &#########################&,,,,,,,%&&&&&&&&&&,,,,,,,&########################## &###############&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#######% *###( ###% &###############&,,,,,,,,&&&&&&&&&&&&&&,,,,,,,&###############% *###% ###& &#######&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*###### &# &# &###########&,,,,,,,,&&&&&&&&&&&&&&&&&%,,,,,,,&############ &# &# &#####&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*###### *% (& &##########(,,,,,,,&&&&&&&&&&&&&&&&&&&&&*,,,,,,,&########## ,% /% &#####&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#######.%######* %& % %###### %#########&,,,,,,,&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,,%#########.%######( #& % %###### %######&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*################/ ## #&################&,,,,,,,%&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,%#################/ ## #&###############&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*################# #% %###############&,,,,,,,*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,&################ #% %################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*###############* &, # %###########&,,,,,,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%,,,,,,,&############/ &, # %##############&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*############## %# # &########%/,,,,,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*,,,,,,,&######### %& #. &#############&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#################% *###########&,,,,,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,,&##########& (#################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*##############################&,,,,,,,%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,###############################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*############################&,,,,,,,*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,&############################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*##########################&,,,,,,,,&&&&&&&&&&&&&&&%(&&&&&&&&&, ,&&&&&%&&%/&&&&&&&&&&&&&%,,,,,,,&##########################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*########################%/,,,,,,,&&&&&&&&&&&&&&&&&&, , ,, ,, , ,&&&&&&&&&&&&&&&*,,,,,,,&########################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*##############&&&%#####&&,&,,,,&&&&&&&&&&&&&&&&&&&&&, ,&&&&&&&&&&&&, .&&&,,,,*///&######################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*##############&,,,,,,&/,&,,,&%&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,,,,,,,,,,,,,,,&&&&&&&&&&&, ,,,, ,*&#################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*###############&, ,(, ,&&&&&&&&&&&&&&&&&&#,,,,, ,, ., , ,&&&&&#&&&, ,&###############&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#############%&&&. %&&&&&&&&&&&&&&&&, ,,,,,, ,,,, , ,&&&&&&&&. ,,, ,&&&&,#&, ,&&/,,%&########&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#########&,,,, ,#&&&&&&&&&&&&, ,&%. .,,. ,.., , ,&&&&&&&, ,&&&&,&*,,&, , ,&#########&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#########&&&(, ,&&&&&&&&&&&, #&&&&&&,,,,, ,,, . ,&&&&&&&, ,,,, ,&&,,&, ,&##########&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*############&,&#, .%&&&&&&&&&&&/,, .,,,,..,, , ,, ,%&&&&&&&&&, ,, %&&&&*, ,%**%#######&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*##########&,,,&, . ,&&&&&&&&&&&&&&&&&,, .,, , , ,, ,,(,,&&&&, ,&,,,%&&&&&&&, ,&########&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*########&,/,,,,,. ,*&, ,/&&&&&(, , , , , , *&&&&, ., , ,&&&&&&&&&&&, ,&&########&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*######%*,,,,,*(&&&&&&&, , ,*&&&#, ,,, .,,,, ,. ,, , . ,&&&&&&&&, ,, , ,&&&&&&&# ,&,,,,&######&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#####%,,,,,,,&&&&&&&, ,*( ,,..,, , , , , , . , ,&&&&(, ,,&&&, , ,,*. ,(,,,,,&####&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*###&,,,,,,,&&&&&&&&&&&&, .,, , , ., . , . , ,&, .,,&&&&&&&&&&* ., ,, ,&&&,,,,,,,*%##&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#&,,,,,,,*&&&&&&&&&&&&&&&, ,*, , , ,, , , , , (&&&%&&&&&&&&&&&&&&&&,, ,, ,&&&&&&&&,,,,,,,%#&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,,,,,,,,&&&&&&&&&&&&&&&&&&&&, , , ,, , , , , ,, , ,&&&&&&&&&&&&&&&%, ,,, ,. ,&&&&&&&&&,,,,,,,*,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,,,,,,&&&&&&&&&&&&&&&&&&&&&&#***, , , , ,, ,,,.. , , ,&&&&&&&&&&&&&, ,#&&&&&&&&#, &&&&&&&&&/,,,,,,,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,,,,&&&&&,,,,, ,&&&&&&&&&&, , , , ,, ,&&&&&&&&&&&&&&&&, (&&&&&&&&&&&&&, ,&&&&&&&&&&,,,,,,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,,&&&&&&&&&&, ,&&&&&&&*, , , , , , , *,. ,&&&&(,. .,(&% ,&, ,*&&&&&&, ,&&&&&&&&&&&&,,,,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,/&&&,,,, , ,(*,, , . , , , , , , ,&&&&&&&* , ,&&&&&&&&/,&&&&&&&&&&&&&&&&,,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&# , , , . , ,(&&&&&&&&&,.,&&&&(, ,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&&&%(,. , , , , ., ,(&&&&&&&&&&#, %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&,, , ,, ,, , ,, ,& ., ,*&&&&&, ,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/,,&&&&&,,,,, .,(&, (& &, ,, ,&,,&&, ,&&&,, ,&&&, ,*&&(, .&&&, ,&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&(,&&&&&&&&&,,,,&&&/ ,&&,,&&,&&&&&&&&&&&&&&&&&&&&&&%*,,. , ,&&&&&&&&&&&&, ,, ,&&&&&&&&&&&&&&&&&&&&&&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,,,&&&&&&&&&&&&&&&,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%, ,&&&&&&&&&&&&, .&&&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,, .,,,,,,,,, ,&&&&&&&&&&&&, ,, ,&&&&&&&&&&&&&&&(,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&, , .#&&&&&&&&&&, .,,, (&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,,,#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,. , , ,(&&&&&&&* ,&&&&%&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&( . , ,&, ,,,, ,&&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,(, ,&&&&, , ,&&&&&&#,. ,%&&&&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,, ,,, , ,&&&&&&&& ,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@&&@@@@@@@@@@@@@@@@@@@@@@@@@@#,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,&&, ,&&&&&&. ,&&&&, ,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(,,,&@@@@@@@@@@@@@@@@@@@@@@@@@&&@@@@@@@@@@@@@@ +@(&@@@@@@@@@@@@&,&@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&&&&&&&&&&&&&&&&&&/,,,,%&&&&&&&&. ,&&&&, %, , ,/&&&#,&&&&&&&&&&&&&&&&&&&&,,,,&@@@@@@@@@@@@@@@@@@@@@@@@@&,&@@@@@@@@@@@@&/ +@&,,#&@@@@@@@@@@,,,&@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&&&&&&&,,,,, ,&&&&&&, . #&&&, %&# ,, /. , ,,&&&&&&&&&&&&&&&&&&&*,,,&@@@@@@@@@@@@@@@@@@@@@@@@@&,,,@@@@@@@@@@&#,,& +@@(,,,,&@@@@@@@@&,,,,&@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&&&&&&&&&,,, &,.&&&&,&&&&&,,&&,,&&,,%#&, ,,%&&&&&&&&&&&&&&&&&&&&,,,(@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,&@@@@@@@@&,,,,(@ +@@&,,,,,,&@@@@@@&,,,,,,%&@@@@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&&&&,, * ,&/&&&&&&&&&&&&&&&&&&&&&&, ,,&&&&&&&&&&&&&&&&&,,,,&@@@@@@@@@@@@@@@@@@@@@@@&%,,,,,,&@@@@@@&,,,,,,&@ +@@@#,,&&,,,,&@@@&,,,&&,,,,&&@@@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&,,,, .,. ,, ,,.&&&&&&&&&&&&&&&#*,,,#&,. ,(&&&&&&&&&&&&&&&&&&#,,,,&@@@@@@@@@@@@@@@@@@@@@@&&,,,,&&,,,&@@@&,,,,&&,,/@@ +@@@&,,,& &,,,,#&&,,( &,,,,,(&@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&&&&&, &, ,&,&&&&&&&&&&&&&&&,,,, ,,,,,,*&&&&&&&&&&&&&,,,,#&@@@@@@@@@@@@@@@@@@@@&#,,,,,& #,,&&(,,,,& &,,,&@@ +@@@@&,,,& &/,,,,,,& &(,,,,,,&&@@@@@@@@@@@@@@@@@&(,,,,&&&&&&&&&&&&,,,,,,,&&&&&,,,&&&&&&&&&&&&&&&&&&&&&*,, ,/&&&&&&&&&&&&&&/,,,,&@@@@@@@@@@@@@@@@@&&,,,,,,(& &,,,,,,/& &,,,&@@@ +@@@@@@/,,,* (&,,,& &&,,,,,,&@@@@@@@@@@@@@@@@&,,,,,&&&&&&&&&#,(&&&&&&&&&,&&&&&&&&&&&&&&&&&&&&&&,, , &&&&,,,&&&&&&&&&&&*,,,,&&@@@@@@@@@@@@@@@&,,,,,,&& &,,,&( *,,,*@@@@@ +@@@@@@@&,,,,& &,,,*&& &,,,&@@@@@@@@@@@@@@@@@&,,,,,(&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,%&&&, ,&&&&&&&&&&&&&&&,,,,,&&@@@@@@@@@@@@@@@@&,,,& &&*,,,& &,,,,&@@@@@@ +@@@@@@@@@&(,,,/& &/&&&,,,,,,,,&& (&@@@@@@@@@@@@@@@@@@@@@&&,,,,,/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,&&&&&&&&&&&,,,,,,&@@@@@@@@@@@@@@@@@@@@@&& &&,,,,,,,,&&&/& &*,,,*&@@@@@@@@ +@@@@@@@@@@@@&(,,,,%& &,,,&, &&,,,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,*&@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,,&& .&,,,& &#,,,,/&@@@@@@@@@@@ +@@@@@@@@@@@@@@@@&*,,,,, &,,,,,,&& &@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,,,%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,,*&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@& &&,,,,,,& ,,,,,*&@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@&& (&*,,,,,,%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,,,,,,,,,,/#%&&&&#(,,,,,,,,,,,,,,,&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%,,,,,,*&( &&@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@& &. .&(,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&%*,,,,,,,,,,,,,,,,(&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,(&, &@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@& .& & %&,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,&% &&& &@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@& *& &&% (&,,,,,*&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&*,,,,,&/ , & &&.&& &@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@&& & & & , &&,,,,,%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%,,,,,&% .& & & & &&@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@,,,,,&* # #& & # &(,,,,,%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%,,,,,(& & & ,&,,,,,@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@&&,,,,,,/&( ( .& && &(,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,(& &&& (&/,,,,,,%&@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@&&&,,,,,,,&( & / & %&*,,,,,,,%&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%,,,,,,,*&% & %, % (&,,,,,,,&&&@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,%& ( % & & &&*,,,,,,,,,,,,(%&&&&&&@@@@@@@@@&&&&&&%(,,,,,,,,,,,,*&& %& #& &%& &%,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&/,,,,,%& & && & .%&&&/*,,,,,,,,,,,,,,,,,,,,,,,,/&&&%. (. &% #& & &%,,,,,/&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&*,,,,,&* ,&( /& & && &&. *&,,,,,*&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,*&. &# & && %. %& & % %& & .&,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,&/ &&& & / &, && & && ,& & &# . .&&& (& ( /&,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,/&% %& & & #& &* & & &,& %&*,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,,,/&&# #&&/,,,,,,,,&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&#,,,,,,,,,,,,,,,/#%&&&&&&&&&&&&&&&&&&&%#/,,,,,,,,,,,,,,,(&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&%(*,,,,,,,,,,,,,,,,,,,,,,,*(%&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \ No newline at end of file diff --git a/src/Decoder.java b/src/Decoder.java new file mode 100644 index 0000000..3a30eb4 --- /dev/null +++ b/src/Decoder.java @@ -0,0 +1,76 @@ +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.FileInputStream; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.util.*; + +public class Decoder { + + //private static double maxTableSize; + private static String decodedOutputFileName = "decoded.txt"; + + public static String decode (String inputFile, int maxDictSize) throws IOException{ + //maxTableSize = Math.pow(2, bit_Length); + + String[] compressedValuesStr = null; + List compressedValues = new ArrayList(); + int dictSize = 255; + + String inputIntCodes = ""; + BufferedReader br = null; + br = new BufferedReader(new FileReader(inputFile)); + inputIntCodes = br.readLine(); + br.close(); + compressedValuesStr = inputIntCodes.split(" "); + for (String str: compressedValuesStr) { + int num = Integer.parseInt(str); + compressedValues.add(num); + } + + Map dict = new HashMap(); + for (int i = 0; i < 255; i++) + dict.put(i, "" + (char) i); + + String oldStr = "" + compressedValues.get(0); + StringBuffer decodedValues = new StringBuffer(); + + String newStr = null; + for (int key : compressedValues) { + if (dict.containsKey(key)) + newStr = dict.get(key); + else + newStr = oldStr + oldStr.charAt(0); + decodedValues.append(newStr); + + if(dictSize dictionary; BufferedReader in; - String output; - int tracker; - int binary; + int dictTracker; public Encoder (String filename) throws IOException { in = new BufferedReader (new FileReader(new File (filename))); dictionary = new HashMap(); - output = ""; - tracker = 256; - binary = 0; + dictTracker = 256; } public String encode () throws IOException { - while (true) { - StringBuilder cur = new StringBuilder (in.read()); - if (in.read() >= 0) { - String next = in.read(); - if (dictionary.containsKey(cur + next)) { - cur.append(next); - } - else { - output += cur; - dictionary.put(cur + next, tracker++); - cur = next; - } - } - else - break; + for (int i = 0; i < 256; i++)//load ascii table + dictionary.put("" + (char)i, i); + StringBuilder sb = new StringBuilder (); + String cur = ""; + while (in.ready()) { + String next = ""+(char)in.read(); + String combined = cur + next; + if (dictionary.containsKey(combined)) { + cur = combined; + }else { + sb.append(dictionary.get(cur) + " "); + dictionary.put(combined, dictTracker++); + cur = next; + } } - } - - /** - * variable naming is very poor here but they are simple placeholders to go from char to a big binary int. - */ - public void toBinary () { - for (int i = 0; i