{"id":21835496,"url":"https://github.com/plopezgit/sprint1_t5_javautils","last_synced_at":"2025-10-15T19:42:15.847Z","repository":{"id":196291629,"uuid":"694574262","full_name":"plopezgit/Sprint1_T5_JavaUtils","owner":"plopezgit","description":"Utils","archived":false,"fork":false,"pushed_at":"2023-11-12T17:42:15.000Z","size":70,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-26T10:07:42.925Z","etag":null,"topics":["encryption-decryption","file-class","properties-file","recursion","serialization"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plopezgit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-09-21T09:15:45.000Z","updated_at":"2024-01-17T10:40:23.000Z","dependencies_parsed_at":"2023-10-13T05:45:42.900Z","dependency_job_id":null,"html_url":"https://github.com/plopezgit/Sprint1_T5_JavaUtils","commit_stats":null,"previous_names":["plopezgit/sprint1_t5_javautils"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plopezgit%2FSprint1_T5_JavaUtils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plopezgit%2FSprint1_T5_JavaUtils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plopezgit%2FSprint1_T5_JavaUtils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plopezgit%2FSprint1_T5_JavaUtils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plopezgit","download_url":"https://codeload.github.com/plopezgit/Sprint1_T5_JavaUtils/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244811979,"owners_count":20514383,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["encryption-decryption","file-class","properties-file","recursion","serialization"],"created_at":"2024-11-27T20:21:32.718Z","updated_at":"2025-10-15T19:42:10.826Z","avatar_url":"https://github.com/plopezgit.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sprint1_T5_JavaUtils\n\n\n```bash\njava -version\n```\n\nLevel 1\n\nJava can be used exclusively, or the Apache Commons IO library if you prefer.\n\n- Exercise 1\n\nCreate a class that alphabetically lists the contents of a directory received by parameter.\n\n```bash\njavac src/n1Exe1/App.java\njava -cp src n1Exe1.App\n```\n\n- Exercise 2\n\nAdd to the class from the previous exercise, the functionality to list a directory tree with the contents of all its levels (recursively) so that they are printed to the screen in alphabetical order within each level, also indicating whether it is a directory (D) or a file (F), and its last modified date.\n\n```bash\njavac src/n1Exe2/App.java\njava -cp src n1Exe2.App\n```\n\n\n- Exercise 3\n\nModify the previous exercise. Now, instead of displaying the result on the screen, it saves the result in a TXT file.\n\n```bash\njavac src/n1Exe3/App.java\njava -cp src n1Exe3.App\n```\n\n- Exercise 4\n\nAdds the functionality to read any TXT file and display its contents by console.\n\n```bash\njavac src/n1Exe4/App.java\njava -cp src n1Exe4.App\n```\n\n- Exercise 5\n\nNow the program needs to serialize a Java Object to a .ser file and then deserialize it.\n\n```bash\njavac src/n1Exe5/App.java\njava -cp src n1Exe5.App\n```\n\n\nLevel 2\n\n- Exercise 1\n\nRun exercise 3 from the previous level by parameterizing all methods in a configuration file.\n\nYou can use a Java Properties file, or the Apache Commons Configuration library if you prefer.\n\nFrom the previous exercise, parameterize the following:\n\nDirectory to read.\n\nName and directory of the resulting TXT file.\n\n```bash\njavac src/n2Exe1/App.java\njava -cp src n2Exe1.App\n```\n\t\nLevel 3\n\n- Exercise 1\n\nCreate a utility that encrypts and decrypts the files resulting from the previous levels.\n\nUse AES algorithm in ECB or CBC working mode with PKCS5Padding padding method. Either javax.crypto or org.apache.commons.crypto can be used.\n\n```bash\njavac src/n3Exe1/App.java\njava -cp src n3Exe1.App\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplopezgit%2Fsprint1_t5_javautils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplopezgit%2Fsprint1_t5_javautils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplopezgit%2Fsprint1_t5_javautils/lists"}